关于IO流中的处理流BufferedReader的参数问题

img


大家好,这个BufferedReader参数中的10 位置,代表是什么含义呢?我今天刚在构造器中看到,自己测试了一下,也没发现在哪里 感谢大家

想象外部文件,外部stream是一片汪洋大海。而BufferedReader在自己内部开辟了一个小水池。每次都是先把小水池填满先。
然后你调用read,就从这个水池里拿一个字符。如果水池没了,还会再继续填满水池。所以可以想象,大部分时刻,都是直接从自己内部这个小水池里读取数据,快很多。
而如果是readline也差不多。直接从水池里读取一行。

所以如果缓冲太小,设成1,那就普通的reader就没区别了。都是一个字符一个字符去读取。

如果用的idea可以直接点进去看
源码如下:

 /**
     * Creates a buffering character-input stream that uses an input buffer of
     * the specified size.
     *
     * @param  in   A Reader
     * @param  sz   Input-buffer size
     *
     * @exception  IllegalArgumentException  If {@code sz <= 0}
     */
    public BufferedReader(Reader in, int sz) {
        super(in);
        if (sz <= 0)
            throw new IllegalArgumentException("Buffer size <= 0");
        this.in = in;
        cb = new char[sz];
        nextChar = nChars = 0;
    }

翻译下:
*创建使用输入缓冲区的缓冲字符输入流
*指定的大小。
*@param在读卡器中的应用
*@param sz输入缓冲区大小

单位应该是chart
可以请采纳

缓存区大小,缓冲区用来装每一次读取的数据。