JavaSE: BufferedOutputStream类 和 BufferedInputStream类

BufferedOutputStream类 (重点)

  <1>  基本概念

        java.io.BufferedOutputStream类:用于描述缓冲输出流,此时不用为写入的每个字节调用底层系统。

  <2>  常用的方法

        方法声明                                功能介绍

        BufferedOutputStream (OutputStream out)                  根据参数指定的引用,构造对象

             BufferedOutputStream (OutputStream out, int size)               根据参数指定的引用和缓冲区大小来构造对象

        void write(int b)                              写入单个字节

           void write(byte[] b, int off, int len)                      写入字节数组中的一部分数据

        void write(byte[] b)                             写入参数指定的整个字节数组

        void flush()                                刷新流

        void close()                                关闭流对象,并释放有关的资源

BufferedInputStream类 (重点)

  <1>  基本概念

        java.io.BufferedInputStream类主要用于描述缓冲输入流

  <2>  常用的方法

        方法声明                                  功能介绍

        BufferedInputStream(InputStream in)                      根据参数指定的引用,构造对象 

        BufferedInputStream(InputStream in, int size)                   根据参数指定的引用 和 缓冲区大小 构造对象

        int read()                                   读取单个字节

        int read(byte[] b, int off, int len)                           读取len个字节

        int read(byte[] b)                               读取b.length个字节

        void close()                                  关闭流对象并释放有关的资源

代码示例:

  class BufferedByteCopyTest {

    main(){  

      // 获取当前系统时间距离1970年1月1日0时0分0秒的毫秒数
      long g1 = System.currentTimeMillis();

      

      BufferedInputStream bis = null;

      BufferedOutputStream bos = null;

      try{

        //  1.  创建BufferedInputStream类型的对象,与d:/02_IO流的框架结构.mp4 文件关联

          bis = new BufferedInputStream (new FileInputStream ("d:/02_IO流的框架结构.mp4 ")); 

        //  2.  创建BufferedOuputStream类型的对象,与d:/IO流的框架结构.mp4 文件关联

        bos = new BufferedOutputStream(new FileOutputStream("d:/02_IO流的框架结构.mp4 "));

        

        //  3.  不断地从输入流中,读取数据,并写入到输出流中

        byte[] bArr = new byte[1024];

        int res = 0;

        while ( (res = bis.read(bArr) != -1  ) ) {

          bos.write (bArr,0,res);

        }

        println("拷贝文件成功!");

      }catch(IOException e){

        e.printStackTrace();

      } finally{

        //  4.  关闭流对象,并释放有关的资源

        if ( null != bos) {

          try{

            bos.close();

          } catch (IOException e) {

            e.printStackTrace();

          }

        }

    

        if ( null != bis) {

          try{

            bis.close();

          } catch (IOException e) {

            e.printStackTrace();

          }

        }

      }

    }

    long g2 = System.currentTimeMillis();
    System.out.println("使用缓冲区拷贝视频文件消耗的时间为:" + (g2-g1)); // 44

  }

            

    

原文地址:https://www.cnblogs.com/JasperZhao/p/14867583.html