以下是功能代码:
public void loadTextFile(String textFileName, ArrayList<String> dictionary)
{
AssetManager assetManager = getAssets(); //files manager
//reader = public bufferedReader
//word = public String
//dictionary = public ArrayList<String>
//load file to buffer
try {
reader = new BufferedReader(new InputStreamReader(assetManager.open(textFileName)));
} catch (IOException e1) {
e1.printStackTrace();
}
word = " ";
//loop, save words from buffer to dictionary
while(word != null)
{
try {
word = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
word = null;
}
if (word != null) {
dictionary.add(word);
}
}//end while
//buffer close
try {
reader.close();
} catch (IOException e1) {
e1.printStackTrace();
}
} //end function
如果我尝试加载小文件&lt; 1MB,它工作得很好而且速度很快。 如果文件(部分)大于1MB但小于大约3MB,则工作缓慢(4-6分钟)。 如果文件更大,它不起作用,我在模拟器中有信息: “应用程序应用程序(进程processing.test.app)已意外停止。请再试一次”。我不知道出了什么问题。 我尝试:预先分配的ArrayList,加载文件到少数ArrayList,但仍然无法正常工作。 我会很感激任何建议。
答案 0 :(得分:0)
首先,word可以在文件的某处变为null,循环将退出(因为你在异常时明确地将word设置为null)。你有堆栈跟踪吗?