java inputstream api_Java API —— IO流( FileInputStream & FileOutputStream & BufferedInputStream & Buf...

本文通过四种不同的字节流方式复制文件,对比了它们的性能。结果显示,使用高效字节流(BufferedInputStream/BufferedOutputStream)配合字节数组进行读写操作的效率最高,仅需47毫秒。实验文件为'e:哥有老婆.mp4',目标文件为'copy.mp4'。
摘要由CSDN通过智能技术生成

packagecn.itcast_06;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;/** 需求:把e:\\哥有老婆.mp4复制到当前项目目录下的copy.mp4中

*

* 字节流四种方式复制文件:

* 基本字节流一次读写一个字节: 共耗时:117235毫秒

* 基本字节流一次读写一个字节数组: 共耗时:156毫秒

* 高效字节流一次读写一个字节: 共耗时:1141毫秒

* 高效字节流一次读写一个字节数组: 共耗时:47毫秒*/

public classCopyMp4Demo {public static void main(String[] args) throwsIOException {long start =System.currentTimeMillis();//method1("e:\\哥有老婆.mp4", "copy1.mp4");//method2("e:\\哥有老婆.mp4", "copy2.mp4");//method3("e:\\哥有老婆.mp4", "copy3.mp4");

method4("e:\\哥有老婆.mp4", "copy4.mp4");long end =System.currentTimeMillis();

System.out.println("共耗时:" + (end - start) + "毫秒");

}//高效字节流一次读写一个字节数组:

public static voidmethod4(String srcString, String destString)throwsIOException {

BufferedInputStream bis= new BufferedInputStream(newFileInputStream(

srcString));

BufferedOutputStream bos= newBufferedOutputStream(newFileOutputStream(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 voidmethod3(String srcString, String destString)throwsIOException {

BufferedInputStream bis= new BufferedInputStream(newFileInputStream(

srcString));

BufferedOutputStream bos= newBufferedOutputStream(newFileOutputStream(destString));int by = 0;while ((by = bis.read()) != -1) {

bos.write(by);

}

bos.close();

bis.close();

}//基本字节流一次读写一个字节数组

public static voidmethod2(String srcString, String destString)throwsIOException {

FileInputStream fis= newFileInputStream(srcString);

FileOutputStream fos= newFileOutputStream(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 voidmethod1(String srcString, String destString)throwsIOException {

FileInputStream fis= newFileInputStream(srcString);

FileOutputStream fos= newFileOutputStream(destString);int by = 0;while ((by = fis.read()) != -1) {

fos.write(by);

}

fos.close();

fis.close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值