zoukankan      html  css  js  c++  java
  • 缓冲流

    缓冲流

    缓冲流给基本的字节流增加一个缓冲区(数组),可以提高输入和输出的效率,是在基本的流对象上创建而来的。

    字节缓冲输出流

    BufferedOutputStream extends OutputStream

    构造方法:

    BufferedOutputStream( OutputStream out)

    创建一个新的缓冲输出流(默认缓冲区大小),将数据写入底层输出流

    BufferedOutputStream( OutputStream out , int size)

    创建一个新的缓冲输出流(指定缓冲区大小),将数据写入底层输出流

    使用步骤:

    1.创建一个File OutputStream对象,构造方法传递写入数据目的地

    2.创建一个BufferedOutputStream对象,构造方法中传递File OutputStream对象,提高效率;

    3.调用BufferedOutputStream对象的write方法,把数据写入缓冲区

    4.调用BufferedOutputStream对象的flush方法,把内部缓冲数据刷新到文件中

    5.释放资源

     

    字节缓冲输入流

    BufferedInputStream extends InputStream

    构造方法: BufferedInputStream( InputStream in)

    创建一个新的缓冲输出流(默认缓冲区大小),将数据写入底层输出流

    BufferedInputStream( InputStream in , int size)

    创建一个新的缓冲输出流(指定缓冲区大小),将数据写入底层输出流

    使用步骤:

    1.创建一个FileInputStream对象,构造方法传递写入数据目的地

    2.创建一个BufferedInputStream对象,构造方法中传递FileInputStream对象,提高效率;

    3.调用read方法读取文件;

    4.释放资源

     

    字符缓冲流

    与字节缓冲流的构造方法和使用步骤类似。有两个特有的成员方法

    1.void newline() (BufferedWrite)

    写入一个行分隔符(根据不同的操作系统获取不同的行分隔符)

    1. void readline()

      读一行数据,遇到行分隔符时终止

      返回值:若不含任何行分隔符,读到流末尾时返回null。

    练习: 利用缓冲流复制一张图片,并测试效率

    public static void main(String[] args) throws IOException {
        long e1 = System.currentTimeMillis();
        FileOutputStream fos = new FileOutputStream("C:\Users\lenovo\IdeaProjects\okok\Month\src\LearnIO2\copy.jpg");
        FileInputStream fis = new FileInputStream("D:\123.jpg");
        BufferedInputStream bufis = new BufferedInputStream(fis);
        BufferedOutputStream bufos = new BufferedOutputStream(fos);
        byte[] bytes = new byte[1024];
        boolean var8 = false;
    
        while(bufis.read(bytes) != -1) {
            bufos.write(bytes);
        }
    
        bufos.flush();
        bufos.close();
        bufis.close();
        long e2 = System.currentTimeMillis();
        System.out.println("共用时:" + (e2 - e1) + "毫秒");
    }
  • 相关阅读:
    基于红帽5裁剪一个简单的Linux
    Linux系统初始化流程
    bash学习记录
    ubuntu 上安装MySQL
    Effective Modern C++ 条款4:掌握查看型别推导结果的方法
    Effective Modern C++ 条款3:理解decltype
    ubuntu 环境下向GitHub上传(push)每次都需要用户名密码问题
    Effective Modern C++ 条款2:理解auto型别推导
    Effective Modern C++  条款1:理解模板型别推导
    ubuntu16.04环境编译gSOAP
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/13965800.html
Copyright © 2011-2022 走看看