package com.itheima.d2_byte_buffer_time;import java.io.*;public class ByteBufferTimeDemo {private static final String SRC_FILE = "D:\\黑马JAVA资料\\day21、多线程\\资料\\12、线程通信案例实现最新.mp4";private static final String DEST_FILE = "D:\\course\\";public static void main(String[] args) {
//        copy01();//使用低级的字节流按照一个一个字节的形式复制文件:慢的让人简直无法忍受,直接被淘汰copy02();//使用低级的字节流按照一个一个字节数组的形式复制文件:比较慢,但是还是可以忍受的!copy03();//缓冲流一个一个字节复制:很慢,不建议使用。copy04();//缓冲流一个一个字节数组复制:飞快,简直太完美了(推荐使用)}private static void copy04() {long startTime = System.currentTimeMillis();try (////1.创建低级的字节输入流与源文件接通InputStream is = new FileInputStream(SRC_FILE);//a.把原始的字节输入流包装成高级的缓冲字节输入流InputStream bis = new BufferedInputStream(is);//2.创建低级的字节输出流与目标文件接通OutputStream os = new FileOutputStream(DEST_FILE + "video4.avi");// b.把字节输出流管道包装成高级的缓冲字节输出流管道OutputStream bos = new BufferedOutputStream(os);){//3.定义一个字节数组转移数据byte[] buffer = new byte[1024 ];int len; //记录每次读取的字节数while ((len = bis.read(buffer))!=-1 ){bos.write(buffer,0, len);}} catch (Exception e) {e.printStackTrace();}long endTime = System.currentTimeMillis();System.out.println("使用缓冲的字节流按照一个一个字节数组的形式复制文件耗时:" + (endTime - startTime)/1000.0 + "s");}private static void copy03() {long startTime = System.currentTimeMillis();try(//1.创建低级的字节输入流与源文件接通InputStream is = new FileInputStream(SRC_FILE);//a.把原始的字节输入流包装成高级的缓冲字节输入流InputStream bis = new BufferedInputStream(is);//2.创建低级的字节输出流与目标文件接通OutputStream os = new FileOutputStream(DEST_FILE + "video3.avi");// b.把字节输出流管道包装成高级的缓冲字节输出流管道OutputStream bos = new BufferedOutputStream(os);) {//3.定义一个变量记录每次读取的字节(一个一个字节的复制)int b;while ((b = bis.read()) != -1){bos.write(b);}}catch (Exception e){e.printStackTrace();}long endTime = System.currentTimeMillis();System.out.println("使用缓冲的字节流按照一个一个字节的形式复制文件耗时:" + (endTime - startTime)/1000.0 + "s");}private static void copy02() {long startTime = System.currentTimeMillis();try (////这里面只能放置资源对象,用完会自动关闭:自动调用资源对象的close方法关闭资源(即使出现异常也会做关闭操作)//1.创建一个字节输入流管道与原视频接通InputStream is = new FileInputStream(SRC_FILE);//2.创建一个字节输出流管道与目标文件接通OutputStream os = new FileOutputStream(DEST_FILE + "video2.avi");//int age = 23; //这里只能放资源){//3.定义一个字节数组转移数据byte[] buffer = new byte[1024 ];int len; //记录每次读取的字节数while ((len = is.read(buffer))!=-1 ){os.write(buffer,0, len);}} catch (Exception e) {e.printStackTrace();}long endTime = System.currentTimeMillis();System.out.println("使用低级的字节流按照一个一个字节数组的形式复制文件耗时:" + (endTime - startTime)/1000.0 + "s");}/*** //使用低级的字节流按照一个一个字节的形式复制文件*/private static void copy01() {long startTime = System.currentTimeMillis();try(//1.创建低级的字节输入流与源文件接通InputStream is = new FileInputStream(SRC_FILE);//2.创建低级的字节输出流与目标文件接通OutputStream os = new FileOutputStream(DEST_FILE + "video1.avi");) {//3.定义一个变量记录每次读取的字节(一个一个字节的复制)int b;while ((b = is.read()) != -1){os.write(b);}}catch (Exception e){e.printStackTrace();}long endTime = System.currentTimeMillis();System.out.println("使用低级的字节流按照一个一个字节的形式复制文件耗时:" + (endTime - startTime)/1000.0 + "s");}
}

黑马JAVA P163 字节缓冲流的性能分析相关推荐

  1. [Java基础]字节缓冲流

    字节缓冲输出流: package InstreamPack;import java.io.BufferedOutputStream; import java.io.FileNotFoundExcept ...

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

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

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

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

  4. 黑马程序员-Java教程-10缓冲流、转换流、序列化流

    day10[缓冲流.转换流.序列化流.打印流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据到文件 能够明确字符缓冲流的作用和基本 ...

  5. 字节缓冲流 BufferedOutputStream java

    字节缓冲流 BufferedOutputStream java 演示

  6. 字节缓冲流 BufferedInputStream java

    字节缓冲流 java 示例 使用默认的缓冲数据来读 使用自定义的缓冲数值来读

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

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

  8. Java字节缓冲流/字符流/IO流小结

    文章目录 字节缓冲流 字节缓冲流构造方法 字符流 为什么会出现字符流 编码表 字符串中的编码解码问题 字符流中的编码解码问题 字符流写数据的5种方式 字符流读数据的2种方式 字符缓冲流 字符缓冲流特有 ...

  9. Java IO流之缓冲流:字节缓冲流BufferedOutputStream BufferedInputStream、字符缓冲流BufferedWriter、BufferedReader

    文章目录 缓冲流 1.字节缓冲流 构造方法 2.字符缓冲流 构造方法 练习:文章段落排序 缓冲流 缓冲流在基础的字节流和字符流上做功能的增强,能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储 ...

最新文章

  1. 液态大脑与固态大脑——圣塔菲最新群体智能文集
  2. VC++中GlobalAlloc()、malloc()和new()函数之间区别
  3. mysql myasam_MySQL锁(MyISAM和InnoDB)
  4. MSN-LDL论文修改(B-Y Rong20211012)
  5. JTextAre 文字右对齐 JTextArea دىكى خەتلەرنى ئوڭدىن س...
  6. TestNg测试框架使用
  7. 隐马尔可夫模型模型评估及最优路径的matlab实现
  8. oracle虚拟机磁盘共享,在虚拟机上VM 添加一块共享磁盘方法 支持Oracle 10g RAC
  9. 华为u2000 olt 添加成功,同步网元失败 提示 服务器不可达 解决办法
  10. android 截屏 水印,水印截图工具微商截图
  11. 个人简历自我介绍求职面试PPT模板
  12. pack_padded_sequence torch说明
  13. 爬虫玩得好,牢饭吃到饱?这3条底线千万不能碰!
  14. 【物联网】23.物联网开发之感测系统 - GPS(GNSS)
  15. 支付宝 微信后台不死的黑科技
  16. 条件概率、全概率公式和贝叶斯公式
  17. 苹果沙盒服务器验证,我收到21004的状态值回复来自苹果的沙盒测试服务器自动再生订阅的IOS?(I'm gett...
  18. 使用hiredis存储数组元素
  19. 取得“距离某天还有多少天多少小时”的函数
  20. vue 分页查询条件的缓存

热门文章

  1. 基于B/S的学生网上考试系统(ssh,mysql)
  2. Android 文件外/内部存储的获取各种存储目录路径
  3. Vbs中sendKeys
  4. python学习之路(3)turtle画奥运五环
  5. NetXpert XG解决方案迎接新挑战!
  6. verilog基础——always、initial
  7. HttpWebRequest的GetResponse或GetRequestStream 超时决办法
  8. 流,向量场,和微分方程
  9. 【算法】各种哈希算法
  10. 2021-08-06,拼多多平台API,item_search - 根据关键词取商品列表