我的文件位于我的包内。
bufferLine = "";
fileName = "fulllist.txt";
try {
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((bufferLine = bufferedReader.readLine()) != null) {
}
bufferedReader.close();
}
catch(FileNotFoundException ex){
System.err.println("Unable to open file '" + fileName + "'");
}
catch(IOException ex) {
ex.printStackTrace();
}
我收到此错误:
无法打开文件'fulllist.txt'
我是否需要包含包名或其他内容?我尝试使用
System.err.println("Current directory is" + new File(".").getAbsolutePath());
进行调试,但所有打印的都是
当前目录是/
这对我没有帮助,因为我认为这意味着它在包内搜索,对吧?如果需要任何其他信息,请发表评论。
答案 0 :(得分:1)
要获取数据目录的文件夹(data / data / app.package.name /),请使用:
String directory = context.getApplicationInfo().dataDir + "/";
要在资源文件夹中获取文件的文件流,请使用:
InputStream is = context.getAssets().open(filename);
这是一个将输入流解析为String的示例:
private String getString(String filename)
{
String result = null;
AssetManager am = getContext().getAssets();
try
{
InputStream is = am.open(filename);
int length = is.available();
byte[] data = new byte[length];
is.read(data);
result = new String(data);
}
catch (IOException e1)
{
e1.printStackTrace();
}
return result;
}
如果你的文本文件实际上是一个项目列表,最好一起擦除这个文本文件,而是使用一个数组资源(通常放在res / values / arrays.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="months">
<item>Month</item>
<item>Jan</item>
<item>Feb</item>
<item>Mar</item>
<item>Apr</item>
<item>May</item>
<item>Jun</item>
<item>Jul</item>
<item>Aug</item>
<item>Sep</item>
<item>Oct</item>
<item>Nov</item>
<item>Dec</item>
</array>
</resources>
然后在你的代码中:
String[] list = getContext().getResources().getStringArray(R.array.months);
希望这会有所帮助:)