我使用以下代码从文件中获取数据
try {
InputStreamReader inputStreamReader = new InputStreamReader(openFileInput(TEXTFILE));
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String string;
StringBuilder stringbuilder = new StringBuilder();
while ((string=bufferedReader.readLine())!=null){
stringbuilder.append(string);
}
EditText.setText(stringbuilder.toString());
} catch (Exception e) {
e.printStackTrace();
}
它可以工作但是
当我将string=bufferedReader.readLine()
放在While
之前时,我会遇到异常:java.lang.OutOfMemoryError
答案 0 :(得分:3)
您正在从BufferedReader
读取一行,并将结果存储在string
中。之后,您检查是否string != null
,如果不是,则将string
追加到stringbuilder
。您重复此操作直到string == null
。
这里的混淆可能是作业陈述的比较:
while ((string = bufferedReader.readLine()) != null) { ... }
这是以下简短注释:
string = bufferedReader.readLine();
while (string != null) {
...
string = bufferedReader.readLine();
}