zoukankan      html  css  js  c++  java
  • 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

      }

                

        

  • 相关阅读:
    用python写一个魔塔50层怪物伤害计算器
    一个奇怪的方法解决华为ENSP模拟器路由器启动后命令行一直“#”的问题
    安卓数据库sqllite查看工具Android Debug Database使用教程
    GNS3错误’Could not start Telnet console with command 'Solar-PuTTY.exe‘
    解决从其他地方拷贝过来的Android项目在本机不能运行(报错)的问题
    python不换行输出
    哈希查找对比普通遍历查找所需时间
    第二个爬虫之爬取知乎用户回答和文章并将所有内容保存到txt文件中
    我的第一个爬虫之爬取搜狗壁纸并按分类存入本地文件夹
    What is Double 11 in China? Is it a famous festival?
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/14867583.html
Copyright © 2011-2022 走看看