我在做:
FileReader fin = new FileReader("file:///android_asset/myFile.txt");
在Android项目中有很多变化。在运行时,我得到一个文件未找到异常。该文件在assets文件夹中存在且正确,因此我的路径必定是错误的。
我需要的绝对路径是什么?
答案 0 :(得分:44)
AssetFileDescriptor descriptor = getAssets().openFd("myfile.txt");
FileReader reader = new FileReader(descriptor.getFileDescriptor());
尝试将上述内容与FileDescriptors一起使用。似乎是我发现收集资产路径的最简单方法。
答案 1 :(得分: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;
}
答案 2 :(得分:3)
你能用
之类的东西吗? try {
BufferedReader br = new BufferedReader(new InputStreamReader(context.getAssets().open("fileName.txt")));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 3 :(得分:3)
它没有读取它,因为assets文件夹中的所有资源都被压缩,尝试将其扩展名更改为.mp3然后读取它,这应该阻止它被压缩。
答案 4 :(得分:2)
我发现如果您使用像Eclipse这样的IDE,您可能需要清理 - 或删除bin目录中的API。在进行构建时,似乎资产没有得到更新。
答案 5 :(得分:1)
AssetManager am = context.getAssets();
InputStream fs = am.open("myFile.txt");