好:
FileReader
只是Reader
使用平台默认编码(urgh)读取文件的BufferedReader
是另一个的包装Reader
,增加了缓冲并可以一次读取一行Scanner
从各种不同的来源读取内容,但通常用于交互式输入。我个人觉得API的Scanner
痛苦和晦涩。
要读取一个文本文件,我建议使用一个
FileInputStream包裹在一个
InputStreamReader(这样你就可以指定编码),然后包裹在
BufferedReader缓冲和在同一时间读取线的能力。
或者,您可以使用使它更简单的第三方库,例如Guava:
File file = new File("foo.txt");List<String> lines = Files.readLines(file, Charsets.UTF_8);或者,如果您使用的是Java 7,则可以在以下位置使用它
java.nio.file.Files:
Path path = FileSystems.getDefault().getPath("foo.txt");List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);


