Android:getAssets()。openFd()和FileNotFoundException

时间:2012-04-13 12:55:38

标签: android android-assets

我正试图从资产文件夹中读取一个txt文件:

escriptor = context.getAssets().openFd("openAccess.txt");
reader = new FileReader(descriptor.getFileDescriptor());

但我得到了这个例外:

  

java.io.FileNotFoundException:此文件无法作为文件打开   描述;它可能是压缩的

我不知道是什么问题?

5 个答案:

答案 0 :(得分:3)

这个怎么样:

InputStream in = context.getAssets().open("openAccess.txt");
reader = new InputStreamReader(in);

答案 1 :(得分:2)

试试这个:

AssetFileDescriptor descriptor = getAssets().openFd("openAccess.txt");
BufferedReader f = new BufferedReader(new FileReader(descriptor.getFileDescriptor()));
String line = f.readLine();
while (line != null) {
    // do stuff
    Log.d("TAG",line);
}

答案 2 :(得分:0)

像这样使用。文件路径。

context.getAssets().openFd("file:///android_asset/openAccess.txt");

答案 3 :(得分:0)

您可以在Asset中创建新文件夹并将文件放在该文件夹中并尝试从该文件夹中获取该文件

答案 4 :(得分:0)

对我来说,在/ res中创建一个“行”文件夹以及复制那里的文件是什么意思。 然后你可以使用:

InputStreamReader iReader = new InputStreamReader(getResources().openRawResource(R.raw.text)));