首页 > 其他 > 详细

字节流的三种操作方法效率对比

时间:2017-11-11 19:20:33      阅读:192      评论:0      收藏:0      [点我收藏+]
public class IOStream {
public static void main(String[] args) throws IOException {
//目标文件大小:43.9M
Original ();//使用自建缓冲区方式复制文件耗时148毫秒
Buff (); //使用包装流复制文件耗时2727毫秒
Utils ();//使用工具类复制文件耗时104毫秒
}
//使用自建缓冲区方式复制文件
private static void Original() throws IOException {

File file = new File ("source.mp4");
InputStream in = new FileInputStream (file);
OutputStream out = new FileOutputStream ("/Users/Shared/a.mp4");

long startTime = System.currentTimeMillis ();

byte[] arr = new byte[8192];
int len;
while ((len = in.read (arr) )!= -1){
out.write (arr);
}

long endTime = System.currentTimeMillis ();
System.out.println (endTime-startTime);

in.close ();
out.close ();
}
//使用包装流方式复制文件
private static void Buff() throws IOException {
File file = new File ("source.mp4");
InputStream in = new FileInputStream (file);
BufferedInputStream bfi= new BufferedInputStream (in);
OutputStream out = new FileOutputStream ("/Users/Shared/b.mp4");
BufferedOutputStream bfo = new BufferedOutputStream (out);

long startTime = System.currentTimeMillis ();

int len;
while ((len = bfi.read () )!= -1){
bfo.write (len);
}

long endTime = System.currentTimeMillis ();
System.out.println (endTime-startTime);

bfi.close ();
bfo.close ();
}

//使用工具包复制文件
private static void Utils() throws IOException {

File file1 = new File ("source.mp4");//文件大小:43.9M
File file2 = new File ("/Users/Shared/c.mp4");

long startTime = System.currentTimeMillis ();

FileUtils.copyFile (file1,file2);

long endTime = System.currentTimeMillis ();
System.out.println (endTime-startTime);
}
}

字节流的三种操作方法效率对比

原文:http://www.cnblogs.com/gdwkong/p/7794427.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!