java中BufferedInputStream类相比InputStream类,提高了输入效率,增加了输入缓冲区的功能,请解释下,...
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中BufferedInputStream类相比InputStream类,提高了输入效率,增加了输入缓冲区的功能,请解释下,...相关的知识,希望对你有一定的参考价值。
java中BufferedInputStream类相比InputStream类,提高了输入效率,增加了输入缓冲区的功能,请解释下,谢谢。
这个缓冲区的概念比较抽象,其实这么说就明白了不带缓冲的操作,每读一个字节就要写入一个字节,由于涉及磁盘的IO操作相比内存的操作要慢很多,所以不带缓冲的流效率很低
带缓冲的流,可以一次读很多字节,但不向磁盘中写入,只是先放到内存里。等凑够了缓冲区大小的时候一次性写入磁盘,这种方式可以减少磁盘操作次数,速度就会提高很多 参考技术A 将一个池子的水抽到另一个池子,inputstream就相当于这两个池子中只有一根管子,传输速率都已经限制了,而bufferedinputstream就相当于在管子中间加了一个缓冲部分,或者是一个动力系统,可以加速抽水的速度,,,,,,想想那个cpu有缓存,效果原理一样
java中讲讲BufferedInputStream的用法,举例?
2.3 BufferedInputStream的用法 (视频下载) (全部书籍)
马克-to-win:BufferedInputStream
顾名思义就是它有一个内部的buffer(缓存),它的read方法表面上看,虽然是只读了一个字节,但它是开始时猛然从硬盘读入一大堆字节到自己的缓
存,当你read时,它是从缓存读进一个字节到内存。而前面讲的FileInputStream字节流,read时,都是真正每个字节都从硬盘到内存,是
很慢的。为什么?请研究硬盘的结构!下面的两个例子,一个是FileInputStream的read生读进来的,另一个是BufferedInputStream的只能read,你比较一下读的时间,差距蛮大的!
例:2.3.1
import java.io.*;
public class TestMark_to_win {
public static void main(String args[]) throws FileNotFoundException,
IOException {
FileInputStream fis = new FileInputStream("c:/2.txt");
long t = System.currentTimeMillis();
int c;
while ((c = fis.read()) != -1) {}
fis.close();
详情黏贴以下网址在地址栏后请进:
以上是关于java中BufferedInputStream类相比InputStream类,提高了输入效率,增加了输入缓冲区的功能,请解释下,...的主要内容,如果未能解决你的问题,请参考以下文章
BufferedInputStream类和BufferedOutputStream类
java中讲讲BufferedInputStream的用法,举例?
Java IO BufferedInputStream 和 BufferedOutputStream