• 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

      }

                

        

  • 相关阅读:
    谷歌浏览器插件开发Tutorial: Getting Started (Hello, World!) 教程:准备开始(你好,世界!)
    Android ViewPager多页面滑动切换以及动画效果
    4.4 我同意条款—CheckBox的isCheck属性
    4.2设计具有背景图的按钮—ImageButton的焦点及事件处理
    【文件打开】浏览打开窗口
    【原创】PE检测工具
    emu8086注册算法分析及KeyGen实现
    学破解 <一> PE格式之MSDOS MZ header
    学破解 <二> PE格式之IMAGE_NT_HEADERS
    反虚拟机程序测试
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/14867583.html
Copyright © 2020-2023  润新知