用Java读取纯文本文件

0 投票
最新提问 6月 21 分类:Java | 用户: 宁静致远 (340 分)
有不同的方式来读取和写入Java中的文件数据。

从文件读取ASCII数据,有哪些方法,它们的区别是什么?

1个回答

0 投票
最新回答 6月 21 用户: 晴澈 (290 分)

读取小文件的方法是使用BufferedReader和StringBuilder。非常简单(尽管不是特别有效,但对大多数情况而言足够好):

BufferedReader br = new BufferedReader(new FileReader("file.txt"));
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();
}

在Java 7之后,你应该使用try-with-resources(即自动关闭)功能:

try(BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    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();
}

当读这样的字符串时,通常要对每行进行一些字符串处理。

如果实际上只是将一个文件读入一个String,我总是使用Apache Commons IO和IOUtils.toString()方法。您可以在这里查看来源:

http://www.docjar.com/html/api/org/apache/commons/io/IOUtils.java.html

FileInputStream inputStream = new FileInputStream("foo.txt");
try {
    String everything = IOUtils.toString(inputStream);
} finally {
    inputStream.close();
}

Java 7中最简单:

try(FileInputStream inputStream = new FileInputStream("foo.txt")) {
    Session IOUtils;
    String everything = IOUtils.toString(inputStream);
}

欢迎来到编程助手,编程方面有什么不懂的问题可以尽管在这里提问,你将会收到热心爱好者的回答。
...