android如何显示所有文本从文件而不是在行的末尾停止行?

标签: Java Android
发布时间: 2016/9/26 3:51:19
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

下面的代码只能带来的第一行代码和停止。返回每一行代码,直到有没有更多 !

private String GetPhoneAddress() {
    File directory = Environment.getExternalStorageDirectory();
    File myFile = new File(directory, "mythoughtlog.txt");
    //File file = new File(Environment.getExternalStorageDirectory() + "mythoughtlog.txt");
    if (!myFile.exists()){
        String line = "Need to add smth";
        return line;
    }
    String line = null;
    //Read text from file
    //StringBuilder text = new StringBuilder();
    try {
        BufferedReader br = new BufferedReader(new FileReader(myFile));
        line = br.readLine();
    }
    catch (IOException e) {
        //You'll need to add proper error handling here
    }
    return line;
}

解决方法 1:

您可以遍历的结果 readLine() 和积累他们直到你得到 null ,指示结束位置的文件 (顺便说一句,你的片段忽略关闭读者的注意。尝试与资源结构可以处理的)︰

try (BufferedReader br = new BufferedReader(new FileReader(myFile))) {
    String line = br.readLine();
    if (line == null) {
        return null;
    }
    StringBuilder retVal = new StringBuilder(line);
    line = br.readLine();
    while (line != null) {
        retVal.append(System.lineSeparator()).append(line);
        line = br.readLine();
    }
    return retVal.toString();
}

如果您使用的 Java 8,你可以节省大量的此锅炉镀的代码与新引进 lines() 方法︰

try (BufferedReader br = new BufferedReader(new FileReader(myFile))) {
    return br.lines().collect(Collectors.joining(System.lineSeparator()));
}

文档 (测试版) 主题中,可以找到更多的例子和解释。

官方微信
官方QQ群
31647020