Java BufferedReader类

BufferedReader能为字符输入流提供缓冲区,可以提高许多IO处理的速度。你可以一次读取一大块的数据,而不需要每次从网络或者磁盘中一次读取一个字节。特别是在访问大量磁盘数据时,缓冲通常会让IO快上许多。

构造函数

public BufferedReader(Reader in,int sz)    //创建一个使用指定大小输入缓冲区的缓冲字符输入流。
参数:
in - 一个 Reader
sz - 输入缓冲区的大小
抛出:
IllegalArgumentException - 如果 sz <= 0

public BufferedReader(Reader in)    //创建一个使用默认大小输入缓冲区的缓冲字符输入流。
参数:
in - 一个 Reader

方法

1. read 读取单个字符。

方法
public int read() throws IOException
覆盖:
类 Reader 中的 read
返回:
作为一个整数(其范围从 0 到 65535 (0x00-0xffff))读入的字符,如果已到达流末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

2. readLine 读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。

方法
public String readLine() throws IOException
返回:
包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
抛出:
IOException - 如果发生 I/O 错误

3. close  关闭该流病释放与之关联的所有资源。

例子

public class BufferedReader_demo {
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        BufferedReader buf = null;              //声明BufferedReader对象
        buf = new BufferedReader(new InputStreamReader(System.in)); //实例化BufferedReader对象
        String str = null;                              //接收输入内容
        System.out.print("请输入内容:");
        try{
            str = buf.readLine();                       //读取输入内容
        }catch(IOException e){                      //要进行异常处理
            e.printStackTrace();
        }
        System.out.println("输入的内容:"+str);
    }
}

总结

1. BufferedReader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值足够大。

2. 通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用BufferedReader包装所有其 read() 操作可能开销很高的 Reader(如 FileReader和 InputStreamReader)。

3. BufferedReader流能够读取文本行,通过向BufferedReader传递一个Reader对象,来创建一个BufferedReader对象,之所以这样做是因为FileReader没有提供读取文本行的功能.


精彩推荐