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) + "毫秒");
    }
  • 相关阅读:
    CVPR-2021-Papers
    caffe中使用多个GPU的方法
    大道至简!深度解读CVPR2021论文RepVGG
    195上的rknn
    RKNN1.6下载路径
    基于深度学习的2D和3D仿射变换配准
    涵盖18+ SOTA GAN实现,开源工程StudioGAN火了
    基于opencv实战眼睛控制鼠标
    S7-200SMART PLC与变频器MODBUS RTU通讯与SMART LINE系列屏控制(案例三)
    Java异常处理学习
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/13965800.html
Copyright © 2011-2022 走看看