Android 读取包含超过130000行文本的大型文本文件
如何将大型文本文件读入应用程序? 这是我的代码,但它不起作用。我的代码必须读取一个名为list.txt的文件。该代码仅适用于只有10.000行的文件。 有人能帮我吗? 谢谢 我的代码:(处理小文件,但不处理大文件)Android 读取包含超过130000行文本的大型文本文件,android,inputstream,bufferedreader,readline,large-files,Android,Inputstream,Bufferedreader,Readline,Large Files,如何将大型文本文件读入应用程序? 这是我的代码,但它不起作用。我的代码必须读取一个名为list.txt的文件。该代码仅适用于只有10.000行的文件。 有人能帮我吗? 谢谢 我的代码:(处理小文件,但不处理大文件) 因为您正在处理一个大文件,所以应该分块处理数据。在这里,您的文件读取是正常的,但随后继续在字符串缓冲区中添加所有行,并最终传递到Toast.makeText()。它在内存中创建了一个大的脚印。相反,您可以读取100-100行,并调用Toast.makeText()进行分块处理。还有一
因为您正在处理一个大文件,所以应该分块处理数据。在这里,您的文件读取是正常的,但随后继续在字符串缓冲区中添加所有行,并最终传递到Toast.makeText()。它在内存中创建了一个大的脚印。相反,您可以读取100-100行,并调用Toast.makeText()进行分块处理。还有一件事,使用字符串生成器而不是字符串缓冲区来避免不必要的同步开销。您在方法内部初始化了wwwdf2变量,但看起来它是一个实例变量,我认为这不是必需的。在方法中声明它以缩短其作用域。请发布stacktrace。大文件有什么问题?它失败的地方和原因?欢迎使用StackOverflow,请也将错误stacktrace粘贴到这里。我不知道这段代码失败的原因,因为Android忽略了文本文件的加载,或者Android读取的时间很长,所以没有错误。@OpenSearch是否检查了logcat?请在这里贴红线。
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();
}
}
}