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) + "毫秒");    }}
时间

缓冲流

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

代码
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) + "毫秒");    }}
时间

缓冲流加上字节数组

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

代码
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) + "毫秒");    }}
时间

结果

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

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

感谢

黑马程序员

以及勤劳的自己

java 删除zip文件_Java--字节缓冲流的效率有多高?测试一下相关推荐

  1. java 字节缓冲_Java字节缓冲流原理与用法详解

    本文实例讲述了Java字节缓冲流原理与用法.分享给大家供大家参考,具体如下: 一 介绍 BufferInputStresm和BufferOutputStream 这两个流类为IO提供了带缓冲区的操作, ...

  2. Java入门学习第十七天——字节流读写文件、字节缓冲流拷贝文件

    字节流读写文件 字节流拷贝文件-按单个字节读写 FileInputStream:普通的字节输入流,用来读取数据的 构造方法: ​ public FileInputStream(String pathn ...

  3. java缓冲流 复制文件_java使用缓冲流复制文件的方法

    本文实例为大家分享了java使用缓冲流复制文件的具体代码,供大家参考,具体内容如下 [1] 程序设计 /*------------------------------- 1.缓冲流是一种处理流,用来加 ...

  4. java 下载zip文件_Java以压缩包方式下载文件

    从云服务器上下载文件,以压缩包方式下载 以下载多个文件为例,需要导入zip4j的jar包,版本不要太高 public void downloadZip(List list, HttpServletRe ...

  5. java删除指定文件_java删除指定目录下指定格式文件的方法

    本文实例为大家分享了java删除指定目录下指定格式文件的具体代码,供大家参考,具体内容如下 正在看疯狂java讲义这本书,发现源码中有我不需要的class文件,想批量把它删除 代码如下: import ...

  6. java 读取zip文件_JAVA实现zip文件内容读取及解压

    今天群里一个人问的一个问题,在多压缩包中包含多个文件夹使用java程序解压出现问题,然后就自己写了一个分享出来 import java.io.File; import java.io.FileOutp ...

  7. java删除奇数文件_java,奇数性的问题

    我们常规的判断是否为奇数的方法一般是: public static boolean judge(int i){ return i%2==1;} 这粗看是正确的,因为奇数可以定义为被2整除,玉余数为1, ...

  8. java 删除pdf文件_java将pdf文件转成图片后删除pdf文件

    /** * 将pdf转成img */ public static void changePdfToImg() { try { File file = new File("E:\\test\\ ...

  9. Java练习题:字节缓冲流性能分析、 文档顺序恢复

    字节缓冲流性能分析 分别使用四种字节缓冲流进行文件复制测试其速度 这里准备了一个较大的视频文件130MB的视频文件进行测试 import com.wukong.io.BufferedInputStre ...

最新文章

  1. UVA12003 Array Transformer(数组分块)
  2. “远征记”——从燕郊骑自行车回京
  3. git新建项目并push进去
  4. java中跳出当前循环怎么做_在java中,如何跳出当前的多重循环?
  5. NLP-Beginner:自然语言处理入门练习-任务一
  6. C#数组解决约瑟夫环问题
  7. 吴恩达机器学习学习笔记第九章:神经网络学习
  8. mysql存过游标_mysql存储过程 游标 循环使用介绍
  9. Xshell官网免费版
  10. ajax上传图片 java_Java+ajax+图片上传
  11. javaScript、PHP连接外卖小票机打印机方案(调用佳博、芯烨等)
  12. 服务器字体放在服务器什么位置,服务器缺少字体如何查看与添加
  13. Markdown流程图实用工具汇总Obsidian+excalidraw
  14. 直播场景音频降噪,传统算法 VS AI 算法对比和实践
  15. 华东交通大学计算机专业分数,往年华东交通大学优势专业排名及分数线参考
  16. onedrive 添加到本地硬盘_Win10系统OneDrive映射到本地磁盘的解决设置技巧
  17. 微信小程序的广告方式有哪些
  18. 优麒麟设置root登入
  19. 辉芒微MCU全系列供应,FT60,61,62
  20. 使用 CSS 构建自定义粘性导航栏

热门文章

  1. Mysql改写子查询SQL优化案例
  2. rabbitmq direct 多个消费者_RabbitMQ从零开始
  3. HDU 2571(dp)题解
  4. AS使用NDK Cmake方式依赖第三方库注意事项
  5. 每日学习小记 11/02
  6. sql server生成不重复的时间字符串
  7. 服务器上使用 git 更新 wordpress 内核方案
  8. Guice Aop 与 Hasor Aop 原理及其实现
  9. Jeasyframe 开源框架 V1.6 发布
  10. 云计算是否为数据仓储做好了准备呢?