我有以下代码片段将文本文件的全部内容读入字符串.它有效,唯一的问题是……它真的很慢(文件长约1500行).
InputStream is = this.getResources().openRawResource(R.raw.comp_rules_glossary);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String previousLine = "start";
while ((readLine = br.readLine()) != null)
{
rules = rules + readLine + eol;
if (previousLine.equals(""))
{
content = content + readLine + eol;
}
previousLine = readLine;
}
is.close();
br.close();
目前,我正在一次读取一行中的完整文件,然后将其附加到字符串中.有更快的方法吗?我正在寻找一种快速的方法将整个文件放入字符串中.
解决方法:
StringBuilder sb_rules = new StringBuilder();
StringBuilder sb_content = new StringBuilder();
while ((readLine = br.readLine()) != null)
{
sb_rules.append(readLine);
sb_rules.append(eol);
if (previousLine.equals(""))
{
sb_content.append(readLine);
sb_content.append(eol);
}
previousLine = readLine;
}
content = sb_rules.toString();
content = sb_content.toString();
String does not allow appending. Each method you invoke on a String creates a new object and returns it. This is because String is immutable – it cannot change its internal state.
标签:java,file,android,bufferedreader,performance
来源: https://codeday.me/bug/20190621/1253193.html