0

私のファイルは私のパッケージの中にあります。

        bufferLine = "";
        fileName = "fulllist.txt";

        try {
            FileReader fileReader = new FileReader(fileName);

            BufferedReader bufferedReader = new BufferedReader(fileReader);

            while((bufferLine = bufferedReader.readLine()) != null) {


            }   
            bufferedReader.close();         
        }
        catch(FileNotFoundException ex){
            System.err.println("Unable to open file '" + fileName + "'");               
        }
        catch(IOException ex) {
            ex.printStackTrace();
        }

次のエラーが表示されます。

ファイル「fulllist.txt」を開けません

パッケージ名などを含める必要がありますか? 使ってみた

System.err.println("Current directory is" + new File(".").getAbsolutePath());

デバッグするが、印刷されたものはすべて

現在のディレクトリは /

パッケージ内を検索することを意味すると思うので、これは私には役に立ちませんよね?追加情報が必要な場合は、コメントしてください。

4

1 に答える 1

1

データ ディレクトリ (data/data/app.package.name/) のフォルダーを取得するには、次を使用します。

String directory = context.getApplicationInfo().dataDir + "/";

assets フォルダー内のファイルのファイル ストリームを取得するには、次を使用します。

InputStream is = context.getAssets().open(filename);

入力ストリームを文字列に解析する例を次に示します。

private  String getString(String filename)
    {


        String result = null;



        AssetManager am = getContext().getAssets();             
        try 
        {
            InputStream is = am.open(filename);
            int length = is.available();
            byte[] data = new byte[length];
            is.read(data);
            result = new String(data);
        } 
        catch (IOException e1) 
        {
            e1.printStackTrace();
        }

        return result;
    }

テキスト ファイルが実際にアイテムのリストである場合は、このテキスト ファイルをまとめてスクラブし、代わりに配列リソース (通常は res/values/arrays.xml に配置される) を使用する方がよい場合があります。

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <array name="months">
        <item>Month</item>
        <item>Jan</item>
        <item>Feb</item>
        <item>Mar</item>
        <item>Apr</item>
        <item>May</item>
        <item>Jun</item>
        <item>Jul</item>
        <item>Aug</item>
        <item>Sep</item>
        <item>Oct</item>
        <item>Nov</item>
        <item>Dec</item>
    </array>

</resources>

次に、コードで:

String[] list = getContext().getResources().getStringArray(R.array.months);

お役に立てれば :)

于 2013-11-08T02:14:43.113 に答える