我知道这个话题可能已被覆盖过,但我无法找到问题的答案
我有一个文件,其中包含我需要阅读的一些单词
它在我的桌面版上正常运行,但是我尝试在模拟器上运行,我得到java.io.FileNotFoundException - no file found
我知道我必须以与桌面不同的方式加载文件。
任何帮助都将不胜感激。
以下是阅读文件的代码。
String line;
try {
BufferedReader br = new BufferedReader(new FileReader("words.txt"));
if (!br.ready()) {
throw new IOException();
}
while ((line = br.readLine()) != null) {
words.add(line);
}
br.close();
} catch (IOException e) {
System.out.println(e);
}
但这在Android上不起作用!!
仍然没有解决方案!!
答案 0 :(得分:1)
资产是开发计算机上的文件。它们不是设备上的文件。
获取资产InputStream
AssetManager
。您可以通过getAssets()
,Activity
或其他Service
致电Context
来获得A
。
答案 1 :(得分:1)
您可以从android中的上下文中访问文件。
Context Context;
AssetManager mngr = context.getAssets();
String line;
try {
BufferedReader br = new BufferedReader(new FileReader(mngr.open("words.txt")));
if (!br.ready()) {
throw new IOException();
}
while ((line = br.readLine()) != null) {
words.add(line);
}
br.close();
} catch (IOException e) {
System.out.println(e);
}
或试试这个:
String line;
try {
BufferedReader br = new BufferedReader(new FileReader(getApplicationContext().getAssets().open("words.txt")));
if (!br.ready()) {
throw new IOException();
}
while ((line = br.readLine()) != null) {
words.add(line);
}
br.close();
} catch (IOException e) {
System.out.println(e);
}