文
章
目
录
章
目
录
在这篇教程中,我们将学习如何使用Java的BufferedReader来读取文件或键盘输入。您可以将给出的示例作为模板,并根据需要进行重用/重写。
1. BufferedReader 类
BufferedReader类从字符输入流中读取文本,通过缓冲字符来提供更高效的读取操作,从而减少I / O操作的次数。
1.1. 创建 BufferedReader
要使用BufferedReader,我们应该将其包装在任何读取操作可能代价高昂的Reader(例如FileReader和InputStreamReader)中。
BufferedReader in = new BufferedReader(new FileReader("foo.in"));
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
或者,我们可以直接使用NIO的Files类来获取BufferedReader引用。
BufferedReader reader =
Files.newBufferedReader(Paths.get("/path/file"))
1.2. 配置缓冲区大小
默认情况下,BufferedReader使用8KB的缓冲区大小。虽然在创建时可以更改缓冲区大小,但在大多数情况下默认大小是很好的选择。
BufferedReader in = new BufferedReader(new FileReader("foo.in"), 65536); //64 KB buffer
2. 使用 BufferedReader 读取文件
2.1. 按行读取文件
try (BufferedReader bufferedReader
= new BufferedReader(new FileReader("/path/file"))) {
String currLine;
while ((currLine = bufferedReader.readLine()) != null) {
System.out.println(currLine);
System.out.println(System.lineSeparator());
}
}
catch (IOException e) {
e.printStackTrace();
}
2.2. 读取控制台输入
InputStreamReader类用于从底层字节输入流中读取数据。将InputStreamReader包装在BufferedReader中可提供最高效率。
try (BufferedReader reader
= new BufferedReader(new InputStreamReader(System.in)))
{
System.out.println("Enter your name");
String name=br.readLine();
System.out.println("Welcome "+name);
}
catch (IOException e) {
e.printStackTrace();
}
3. 结论
在这篇简短的Java教程中,我们学习了如何创建和操作Java中的BufferedReader实例。我们了解了如何配置BufferedReader的默认缓冲区大小,并学习了如何从文件和系统控制台进行读取。