BufferedInputSream

一、使用BufferedInputSream的步骤

 

  1. 找到目标文件
  2. 建立数据的输入管道
  3. 建立缓冲输入字节流
  4. 关闭资源

二、BufferedInputSream 出现的目的是为了提高读取文件的效率,但是BufferedInputStream的read的方法每次读取一个字节数据,而FileInputStream每次也是读取一个字节的数据,那么BufferedInputStream效率从何而来?

 

BufferedInputStream:是从内存中的缓冲数组读取的。FileInputStream:是从硬盘中直接读取字节的。从内存读取的速度大于从硬盘读取的速度,所以BufferedInputStream效率更快。

三、为什么创建BufferedInputStream的时候需要传递FileInputStream?

BufferedInputStream 本身是不具备读文件的能力,所以需要借助FileInputStream

四、BufferedInputSream.close()

BufferedInputSream.close() 实际上关闭的是FileInputStream()

五、代码分析:

public static void readTest() throws IOException{
        File file=new File("E:\\a.txt");
        FileInputStream fileInputStream =new FileInputStream(file);
        BufferedInputStream bufferedInputStream=new BufferedInputStream(fileInputStream);
        int length=0;
        while((length=bufferedInputStream.read())!=-1){
            System.out.println((char)length);
        }
        
        bufferedInputStream.close();
    }

总之:BufferedInputSream 缓冲输入字节流 缓冲流入字节流的出现主要是为了提高读文件的效率,其实该类内部只不过维护了一个8kb的字节数组。

所以我们也可以使用FileInputStream,自己创建一个数组。

 

posted @ 2015-11-27 12:36  好人难寻  阅读(443)  评论(0)    收藏  举报