IO之4种字节流拷贝文件方式对比
2024-09-01 08:08:51
public class CopyMp4Demo {
public static void main(String[] args) throws IOException {
long start = System.currentTimeMillis();
// method1("e:\\test.mp4", "copy4.mp4");
// method2("e:\\test.mp4", "copy4.mp4");
// method3("e:\\test.mp4", "copy4.mp4");
method4("e:\\test.mp4", "copy4.mp4");
long end = System.currentTimeMillis();
System.out.println("共耗时:" + (end - start) + "毫秒");
} // 高效字节流一次读写一个字节数组:
public static void method4(String srcString, String destString)
throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcString));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destString)); byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
} bos.close();
bis.close();
} // 高效字节流一次读写一个字节:
public static void method3(String srcString, String destString)
throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcString));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destString)); int by = 0;
while ((by = bis.read()) != -1) {
bos.write(by); } bos.close();
bis.close();
} // 基本字节流一次读写一个字节数组
public static void method2(String srcString, String destString)
throws IOException {
FileInputStream fis = new FileInputStream(srcString);
FileOutputStream fos = new FileOutputStream(destString); byte[] bys = new byte[1024];
int len = 0;
while ((len = fis.read(bys)) != -1) {
fos.write(bys, 0, len);
} fos.close();
fis.close();
} // 基本字节流一次读写一个字节
public static void method1(String srcString, String destString)
throws IOException {
FileInputStream fis = new FileInputStream(srcString);
FileOutputStream fos = new FileOutputStream(destString); int by = 0;
while ((by = fis.read()) != -1) {
fos.write(by);
} fos.close();
fis.close();
}
}
字节流四种方式复制文件:
基本字节流一次读写一个字节: 共耗时:117235毫秒
基本字节流一次读写一个字节数组: 共耗时:156毫秒
高效字节流一次读写一个字节: 共耗时:1141毫秒
高效字节流一次读写一个字节数组: 共耗时:47毫秒
推荐使用第四种,即 高效字节流一次读写一个字节数组 方式读取文件。
最新文章
- Android自定义控件5--轮播图广告ViewPager基本实现
- java jdb命令详解
- JS中数组Array的用法示例介绍 (转)
- eclipse新建项目,报错“Error: workspace\appcompat_v7\res\values-v21\styles_base.xml No resource found that matches the given name”
- [开发笔记]-MarkDown语法
- Vertica 项目常用代码
- 将 node.js 的数据保存到 mongo 数据库中
- 转】Mahout分步式程序开发 聚类Kmeans
- linux常用命令详解
- Earth to developers: Grow up!
- hdu1263 水果(结构体排序)
- PDO(数据访问抽象层)、pdo事务功能和预处理功能---2017-05-05
- 如何统计iOS产品不同渠道的下载量?
- DataURL与File,Blob,canvas对象之间的互相转换的Javascript
- 微信公众号报错 config:invalid signature
- cmd连接Oracle数据库成功后输入sql语句返回 2
- python并发编程基础之守护进程、队列、锁
- Spark RDD转换为DataFrame
- Makefile 隐含规则,模式规则,常见变量
- Linux 添加网卡
热门文章
- The number of method references in a .dex file cannot exceed 64K.(转)
- IDEA错误:Cannot start compilation: the output path is not specified for module ";Test";. Specify the out
- 第十章 优先级队列 (a1)需求与动机
- CentOS 下搭建Jenkins
- 高德地图开发者平台获取sHA1值
- CSS3实现10种Loading效果(转)
- js replaceAll全部替换
- echarts横向柱状图如果想打开网址
- php的ob缓存详解
- IE6、7下overflow:hidden失效的问题