首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >大文本文件加载在android上不起作用

大文本文件加载在android上不起作用
EN

Stack Overflow用户
提问于 2014-02-16 07:39:33
回答 1查看 152关注 0票数 0

以下是函数的代码:

代码语言:javascript
运行
复制
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

如果我尝试加载小于1MB的小文件,它工作得很好,而且相当快。如果文件(部分)大于1MB,但小于3MB,则运行缓慢(4-6分钟)。如果文件较大,则无法工作,并且我在仿真器中有以下信息:“应用程序应用程序(进程processing.test.app)已意外停止。请重试”。我不知道哪里出了问题。我尝试过:预先分配ArrayList,加载文件到几个数组列表,但仍然不起作用。如果有任何建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-02-16 07:47:44

首先,word可能在文件中的某处变为null,循环将退出(因为您在出现异常时显式地将word设置为null )。你得到堆栈跟踪了吗?

如果您有一个AsyncTask

  • Execute ,
  1. 会尝试在真实设备上使用AsyncTask

将代码移动到后台进程

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21805217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档