java中BufferedInputStream类相比InputStream类,提高了输入效率,增加了输入缓冲区的功能,请解释下,...

2025-05-18 03:57:07
推荐回答(2个)
回答1:

这个缓冲区的概念比较抽象,其实这么说就明白了
不带缓冲的操作,每读一个字节就要写入一个字节,由于涉及磁盘的IO操作相比内存的操作要慢很多,所以不带缓冲的流效率很低
带缓冲的流,可以一次读很多字节,但不向磁盘中写入,只是先放到内存里。等凑够了缓冲区大小的时候一次性写入磁盘,这种方式可以减少磁盘操作次数,速度就会提高很多

回答2:

将一个池子的水抽到另一个池子,inputstream就相当于这两个池子中只有一根管子,传输速率都已经限制了,而bufferedinputstream就相当于在管子中间加了一个缓冲部分,或者是一个动力系统,可以加速抽水的速度,,,,,,想想那个cpu有缓存,效果原理一样