Android - 如何在EditText中有效加载大量文本

时间:2015-01-30 01:02:10

标签: android android-edittext

我正在尝试将大量文本加载到我的edittext中。但是,应用程序似乎有点滞后。文字有大约50,000多个字符和大约3000多行。

代码:

try {
  InputStream is = new FileInputStream(f);
  InputStreamReader reader = new InputStreamReader(is, "UTF-8");
  int c;
  char[] buffer = new char[1024];
  while ((c = reader.read(buffer)) != -1) {
    writer.write(buffer, 0, c);
  }

  reader.close();
  is.close();

  mTextContent.setText(writer.toString());

} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

还有其他方法可以有效地完成这项工作吗?

感谢。

2 个答案:

答案 0 :(得分:0)

读取50KB的数据需要一些时间,特别是在一次读取1KB时。

不要在主应用程序线程上执行磁盘I / O.请将您的磁盘I / O移动到后台线程,完成后在主应用程序线程上填充EditText

另外,请考虑使用比1KB更大的缓冲区。

答案 1 :(得分:-1)

在计算string内的edittext后,尝试定期将total size附加到loop

 while ((c = reader.read(buffer)) != -1) {
    writer.write(buffer, 0, c);
 }

这只是猜测..