java - 这是读取文本文件的好方法吗?

标签 java file io filereader

我一直在互联网上查找,试图找出读取不太长的文本文件的最佳方法(这里的用例涉及小型 OpenGL 着色器)。我最终得到了这个:

private static String load(final String path)
{
    String text = null;

    try
    {
        final FileReader fileReader = new FileReader(path);
        fileReader.read(CharBuffer.wrap(text));

        // ...
    }
    catch(IOException e)
    {
        e.printStackTrace();
    }

    return text;
}

在什么情况下这部分代码会导致效率低下?这是 CharBuffer.wrap(text) 一件好事吗?

最佳答案

如果你想逐行读取文件:

BufferedReader br = new BufferedReader(new FileReader(path));
try {
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();

    while (line != null) {
        sb.append(line);
        sb.append(System.lineSeparator());
        line = br.readLine();
    }
    String everything = sb.toString();
} finally {
    br.close();
}

如果您想一次性阅读完整文件:

String text=new String(Files.readAllBytes(...)) 或 Files.readAllLines(...)

关于java - 这是读取文本文件的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347766/

相关文章:

java - 如何使用 JTS 或 NTS 找到曲线角点?

java - 用Java(jsp)读取无效的cookie?

java - 将 java List<Double> 传递给 dart List<double> 时出错

python - 在 Python 2.7 中高效读取 800 GB XML 文件

java - 动态设置 JPA 持久性属性

java - 保存从文件读取的字符串值列表的最佳java方法是什么

java - 如何将 w3c.dom.Document 转换为文件而不保存到文件

android - 关于如何打开现有 Android 应用程序的困惑

java - 无法理解带有 throws 的外部代码

java - 扫描仪没有停止