Cha*_*bel 12 java filereader bufferedreader java.util.scanner
任何人都可以解释我的类之间的区别BufferedReader,FileReader以及Scanner?当我想阅读文本文件时使用哪一个?
Jon*_*eet 15
好:
FileReader只是一个Reader使用platform-default编码(urgh)读取文件的文件BufferedReader是另一个包装器Reader,添加缓冲和一次读取一行的能力Scanner从各种不同的来源读取,但通常用于交互式输入.就个人而言,我发现API Scanner非常痛苦和模糊.要读取文本文件,我建议使用一个FileInputStream包装InputStreamReader(因此您可以指定编码)然后包装在BufferedReaderfor缓冲和一次读取一行的能力.
或者,您可以使用更简单的第三方库,例如Guava:
File file = new File("foo.txt");
List<String> lines = Files.readLines(file, Charsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是Java 7,它已经可用于java.nio.file.Files:
Path path = FileSystems.getDefault().getPath("foo.txt");
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)