黑马JAVA P163 字节缓冲流的性能分析
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 字节缓冲流的性能分析相关推荐
- [Java基础]字节缓冲流
字节缓冲输出流: package InstreamPack;import java.io.BufferedOutputStream; import java.io.FileNotFoundExcept ...
- Java练习题:字节缓冲流性能分析、 文档顺序恢复
字节缓冲流性能分析 分别使用四种字节缓冲流进行文件复制测试其速度 这里准备了一个较大的视频文件130MB的视频文件进行测试 import com.wukong.io.BufferedInputStre ...
- java 字节缓冲_Java字节缓冲流原理与用法详解
本文实例讲述了Java字节缓冲流原理与用法.分享给大家供大家参考,具体如下: 一 介绍 BufferInputStresm和BufferOutputStream 这两个流类为IO提供了带缓冲区的操作, ...
- 黑马程序员-Java教程-10缓冲流、转换流、序列化流
day10[缓冲流.转换流.序列化流.打印流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据到文件 能够明确字符缓冲流的作用和基本 ...
- 字节缓冲流 BufferedOutputStream java
字节缓冲流 BufferedOutputStream java 演示
- 字节缓冲流 BufferedInputStream java
字节缓冲流 java 示例 使用默认的缓冲数据来读 使用自定义的缓冲数值来读
- Java入门学习第十七天——字节流读写文件、字节缓冲流拷贝文件
字节流读写文件 字节流拷贝文件-按单个字节读写 FileInputStream:普通的字节输入流,用来读取数据的 构造方法: public FileInputStream(String pathn ...
- Java字节缓冲流/字符流/IO流小结
文章目录 字节缓冲流 字节缓冲流构造方法 字符流 为什么会出现字符流 编码表 字符串中的编码解码问题 字符流中的编码解码问题 字符流写数据的5种方式 字符流读数据的2种方式 字符缓冲流 字符缓冲流特有 ...
- Java IO流之缓冲流:字节缓冲流BufferedOutputStream BufferedInputStream、字符缓冲流BufferedWriter、BufferedReader
文章目录 缓冲流 1.字节缓冲流 构造方法 2.字符缓冲流 构造方法 练习:文章段落排序 缓冲流 缓冲流在基础的字节流和字符流上做功能的增强,能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储 ...
最新文章
- 液态大脑与固态大脑——圣塔菲最新群体智能文集
- VC++中GlobalAlloc()、malloc()和new()函数之间区别
- mysql myasam_MySQL锁(MyISAM和InnoDB)
- MSN-LDL论文修改(B-Y Rong20211012)
- JTextAre 文字右对齐 JTextArea دىكى خەتلەرنى ئوڭدىن س...
- TestNg测试框架使用
- 隐马尔可夫模型模型评估及最优路径的matlab实现
- oracle虚拟机磁盘共享,在虚拟机上VM 添加一块共享磁盘方法 支持Oracle 10g RAC
- 华为u2000 olt 添加成功,同步网元失败 提示 服务器不可达 解决办法
- android 截屏 水印,水印截图工具微商截图
- 个人简历自我介绍求职面试PPT模板
- pack_padded_sequence torch说明
- 爬虫玩得好,牢饭吃到饱?这3条底线千万不能碰!
- 【物联网】23.物联网开发之感测系统 - GPS(GNSS)
- 支付宝 微信后台不死的黑科技
- 条件概率、全概率公式和贝叶斯公式
- 苹果沙盒服务器验证,我收到21004的状态值回复来自苹果的沙盒测试服务器自动再生订阅的IOS?(I'm gett...
- 使用hiredis存储数组元素
- 取得“距离某天还有多少天多少小时”的函数
- vue 分页查询条件的缓存