📜  BufferredReader 类 - Java (1)

📅  最后修改于: 2023-12-03 14:59:35.145000             🧑  作者: Mango

BufferedReader 类 - Java

1. 简介

BufferedReader 类是Java IO库中一个常用的输入流类。它提供了一种缓存输入流的机制,适用于需要读取大量数据的情况。与 InputStreamReader 不同,BufferedReader 可以读取字符或行,而不只是字节。

在使用 BufferedReader 类时,通常需要将其与输入流一起使用。例如,可以使用 InputStreamReader 将用于创建文件读取器(即输入流),然后将其传递给 BufferedReader,从而创建一个缓冲区,以优化读取输入流数据的性能。

2. 构造函数

BufferedReader 类有三种构造函数,其中每种都支持不同的输入方式。

  • BufferedReader(Reader in):创建一个缓冲字符输入流,以读取给定字符输入流。
  • BufferedReader(Reader in, int sz):创建一个缓冲字符输入流,以使用指定缓冲区大小读取给定字符输入流。
  • BufferedReader(InputStream in):创建一个缓冲字符输入流,以使用默认缓冲区大小从给定字节输入流读取数据。
3. 方法

BufferedReader 类支持多种方法,这些方法可用于读取输入流数据。以下是一些最常用的方法:

  • int read():读取单个字符。
  • int read(char[] cbuf, int off, int len):读取字符数据到数组中。
  • String readLine():读取一行字符数据。
  • boolean ready():测试是否可以从该流读取数据。
  • void close():关闭该流并且释放与之关联的所有资源。

以下是一个示例代码片段,演示如何使用 BufferedReader 类读取文件中的数据:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader("file.txt"));
            String line = null;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (reader != null) reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

在上面的示例中,我们首先创建了一个 BufferedReader 对象来读取一个名为 "file.txt" 的文件。然后,我们使用 readLine() 方法读取文件中的每一行数据,如果文件已全部读取,则 readLine() 方法将返回 null。最后,我们在控制台上输出读取到的每一行数据。

4. 总结

BufferedReader 类提供了一种缓存输入流的机制,适用于需要读取大量数据的情况。读取输入流数据时,可以使用 read()readLine() 等方法。记住一定要关闭 BufferedReader 实例以及关联的所有资源。