美文网首页
Java--字节缓冲流的效率有多高?测试一下

Java--字节缓冲流的效率有多高?测试一下

作者: 归子莫 | 来源:发表于2020-04-24 16:47 被阅读0次

Java--字节缓冲流的效率有多高?测试一下

博客说明

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

说明

说缓冲流的效率特别高,那么今天我们就来测试一下

基本流

采用普通的字节流

代码
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @author Buffered
 * @date 2020/4/24 4:16 下午
 */
public class Buffered {
    public static void main(String[] args) throws FileNotFoundException {
        long start = System.currentTimeMillis();   //获取毫秒值
        try (
                FileInputStream fis = new FileInputStream("azlg.zip");
                FileOutputStream fos = new FileOutputStream("copy.zip")
        ) {
            // 读写数据
            int b;
            while ((b = fis.read()) != -1) {
                fos.write(b);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        long end = System.currentTimeMillis();   //获取毫秒值
        System.out.println("普通流复制时间:" + (end - start) + "毫秒");
    }
}

时间
image-20200424163315031

缓冲流

采用字节缓冲流来复制文件

代码
import java.io.*;

/**
 * @author Buffered
 * @date 2020/4/24 4:16 下午
 */
public class Buffered {
    public static void main(String[] args) throws FileNotFoundException {
        long start = System.currentTimeMillis();   //获取毫秒值
        try (
                BufferedInputStream fis = new BufferedInputStream(new FileInputStream("azlg.zip"));
                BufferedOutputStream fos = new BufferedOutputStream( new FileOutputStream("copy.zip"))
        ) {
            // 读写数据
            int b;
            while ((b = fis.read()) != -1) {
                fos.write(b);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        long end = System.currentTimeMillis();   //获取毫秒值
        System.out.println("缓冲流复制时间:" + (end - start) + "毫秒");
    }
}

时间
image-20200424163743751

缓冲流加上字节数组

在使用缓冲流的同时使用字节数组,能够更加提高复制的速度

代码
import java.io.*;

/**
 * @author Buffered
 * @date 2020/4/24 4:16 下午
 */
public class Buffered {
    public static void main(String[] args) throws FileNotFoundException {
        long start = System.currentTimeMillis();   //获取毫秒值
        try (
                BufferedInputStream fis = new BufferedInputStream(new FileInputStream("azlg.zip"));
                BufferedOutputStream fos = new BufferedOutputStream( new FileOutputStream("copy.zip"))
        ) {
            // 读写数据
            int b;
            byte[] bytes = new byte[8*1024];
            while ((b = fis.read(bytes)) != -1) {
                fos.write(b);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        long end = System.currentTimeMillis();   //获取毫秒值
        System.out.println("缓冲流使用字节数组复制时间:" + (end - start) + "毫秒");
    }
}

时间
image-20200424164111519

结果

通过三段代码执行的时间分析,使用缓冲流能够大大增加文件复制的速度,舒勇字节数组则是可以经一部提高

一个5.7MB大小的文件,速度分别是34589毫秒到186毫秒到10毫秒

感谢

黑马程序员

以及勤劳的自己

相关文章

  • Java--字节缓冲流的效率有多高?测试一下

    Java--字节缓冲流的效率有多高?测试一下 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和...

  • 缓冲流

    缓冲流是为了读取和写入的速度,提高效率主要包括:字节缓冲流和字符缓冲流 字节缓冲流: 根据流的方向,共有2个:字节...

  • IO流3

    IO流三 缓冲流 字节缓冲流和字符缓冲流:可以提高效率。用字节流去读写操作,可以一个字节的去读写,这种效率非常低。...

  • 2020-07-03字节缓冲流

    字节缓冲流 字节缓冲流类介绍①BufferedOutputStream:该类实现缓冲输出流。通过设置这样的输出流,...

  • File&IO (2)

    1.字节缓冲流 1.1字节缓冲流构造方法【应用】 字节缓冲流介绍lBufferOutputStream:该类实现缓...

  • No.17 字节缓冲流/字符缓冲流

    字节缓冲流: 字节缓冲流简介:1.BufferedInputStream/BufferedOutputStream...

  • 缓冲流、转换流、序列化流

    主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据...

  • Java基础 缓冲流、转换流、序列化流

    主要内容 转换流 缓冲流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据...

  • 字节流和字节缓冲流的速度对比

    字节流和字节缓冲流的速度对比

  • IO流

    一、IO流的概述: 二、IO流的分类: 三、字节缓冲流: 四、字符缓冲流: 五、转换流(把字节流转换为字符流): ...

网友评论

      本文标题:Java--字节缓冲流的效率有多高?测试一下

      本文链接:https://www.haomeiwen.com/subject/mrnfwhtx.html