可以使用FileReader& amp; BufferedReader类。 在几个技术说明中,提到将文本文件作为输入流,然后转换为Inputstreamreader,然后转换为BufferedReader。
我们需要使用InputStream方法的任何原因
答案 0 :(得分:7)
FileReader
是读取字符文件的便利类。此类的构造函数假定默认字符编码和默认字节缓冲区大小是适当的。要自己指定这些值,请在FileInputStream上构造一个InputStreamReader。
答案 1 :(得分:0)
this answer的补充......
如果您不需要,则根本不需要使用BufferedReader
,除非它具有非常方便的.readLine()
方法。这是第一点。
其次,更重要的是:
File
。它们都出现在Java 7中。因此,读取文本文件的新方法是这样的:
final Path path = Paths.get("path/to/the/file");
try (
final BufferedReader reader = Files.newBufferedReader(path,
StandardCharsets.UTF_8);
) {
// use reader here
}
在Java 8中,您还有Files.newBufferedReader()
的版本,其中不将字符集作为参数;这将默认以UTF-8读取。同样在Java 8中,您有Files.lines()
:
try (
final Stream<String> stream = Files.lines(thePath);
) {
// use the stream here
}
是的,请使用try-with-resources获取此类流!