在将字符串放入之前获取异常

时间:2015-09-01 15:36:23

标签: java android

我使用以下代码从文件中获取数据

 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

1 个答案:

答案 0 :(得分:3)

您正在从BufferedReader读取一行,并将结果存储在string中。之后,您检查是否string != null,如果不是,则将string追加到stringbuilder。您重复此操作直到string == null

这里的混淆可能是作业陈述的比较:

while ((string = bufferedReader.readLine()) != null) { ... }

这是以下简短注释:

string = bufferedReader.readLine();
while (string != null) {
    ...
    string = bufferedReader.readLine();
}