Java BufferedReader 详解

后端 潘老师 6个月前 (10-23) 124 ℃ (0) 扫码查看

在这篇教程中,我们将学习如何使用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的默认缓冲区大小,并学习了如何从文件和系统控制台进行读取。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/10232.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】