如何将大文本文件读入我的应用程序?这是我的代码,但是不起作用。我的代码必须读取一个名为list.txt的文件。该代码仅适用于仅10.000行的文件。有人可以帮我吗?谢谢!
我的代码:(适用于小文件,但不适用于大文件)]]
private void largefile(){
String strLine2="";
wwwdf2 = new StringBuffer();
InputStream fis2 = this.getResources().openRawResource(R.raw.list);
BufferedReader br2 = new BufferedReader(new InputStreamReader(fis2));
if(fis2 != null) {
try {
LineNumberReader lnr = new LineNumberReader(br2);
String linenumber = String.valueOf(lnr);
while ((strLine2 = br2.readLine()) != null) {
wwwdf2.append(strLine2 + "\n");
}
// Toast.makeText(getApplicationContext(), linenumber, Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), wwwdf2, Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
如何将大文本文件读入我的应用程序?这是我的代码,但是不起作用。我的代码必须读取一个名为list.txt的文件。该代码仅适用于只有10.000行的文件。可以...
由于正在处理一个大文件,因此应分块处理数据。在这里,您的文件读取很好,但随后您继续将所有行添加到字符串缓冲区中,最后传递给Toast.makeText()。它在内存中产生了很大的影响。相反,您可以读取100-100行并调用Toast.makeText()以大块方式进行处理。还有一件事,使用字符串生成器而不是字符串缓冲区可以避免不必要的同步开销。您在方法内部初始化wwwdf2变量,但看起来它是一个实例变量,我认为这不是必需的。在方法中声明它,以使其范围更短。