我正在进行以下操作:
FileReader fin = new FileReader("file:///android_asset/myFile.txt");
在一个Android项目中,有很多变量。运行时我会收到文件未找到的异常。该文件存在并且在资源文件夹中是正确的,因此我的路径可能是错误的。
这里我需要什么绝对路径?
AssetFileDescriptor descriptor = getAssets().openFd("myfile.txt");
FileReader reader = new FileReader(descriptor.getFileDescriptor());
尝试使用上面的方法与FileDescriptors一起使用。这似乎是我发现的最可靠的收集资产路径的方式。
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;
}
你能使用类似于
try {
BufferedReader br = new BufferedReader(new InputStreamReader(context.getAssets().open("fileName.txt")));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
它无法读取它,因为assets文件夹中的所有资源都被压缩了,尝试将其扩展名更改为.mp3,然后进行阅读,这应该可以防止其被压缩。
我发现如果你正在使用像Eclipse这样的IDE,你可能需要进行清理--或者删除bin目录中的API。当你构建时,似乎资产并没有得到更新。
AssetManager am = context.getAssets();
InputStream fs = am.open("myFile.txt");