25

私がやっている:

FileReader fin = new FileReader("file:///android_asset/myFile.txt");

Android プロジェクトと多くのバリエーションで。実行時に、ファイルが見つからないという例外が発生します。ファイルはアセット フォルダーに存在し、正しいので、パスが間違っているはずです。

ここで必要な絶対パスは何ですか?

4

6 に答える 6

47
AssetFileDescriptor descriptor = getAssets().openFd("myfile.txt");
FileReader reader = new FileReader(descriptor.getFileDescriptor());

上記を FileDescriptors で使用してみてください。アセット パスを収集するために私が見つけた最も確実な方法のようです。

于 2011-01-25T03:29:18.587 に答える
19
    InputStream is = getResources().getAssets().open("terms.txt");
    String textfile = convertStreamToString(is);

public static String convertStreamToString(InputStream is)
            throws IOException {
            Writer writer = new StringWriter();

            char[] buffer = new char[2048];
            try {
                Reader reader = new BufferedReader(new InputStreamReader(is,
                        "UTF-8"));
                int n;
                while ((n = reader.read(buffer)) != -1) {
                    writer.write(buffer, 0, n);
                }
            } finally {
                is.close();
            }
            String text = writer.toString();
            return text;
    }
于 2012-03-03T07:01:38.860 に答える
3

アセットフォルダ内のすべてのアセットが圧縮されているため、読み取れません。拡張子を.mp3に変更してから読み込んでください。これにより、圧縮が停止します。

于 2011-11-01T16:11:24.443 に答える
3

次のようなものを使用できますか

    try {
        BufferedReader br = new BufferedReader(new InputStreamReader(context.getAssets().open("fileName.txt")));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
于 2011-01-25T02:13:15.393 に答える
2

Eclipse のような IDE を使用している場合は、bin ディレクトリの API を削除するか、クリーンアップする必要があるかもしれません。ビルド時にアセットが更新されていないようです。

于 2011-10-27T12:06:43.763 に答える
1
AssetManager am = context.getAssets();
InputStream fs = am.open("myFile.txt");
于 2011-02-01T13:29:33.037 に答える