码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-11-11 19:54:21      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:redo   ndt   流复制   包装   tput   工具   工具类   字节   input   

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);
}
}

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

标签:redo   ndt   流复制   包装   tput   工具   工具类   字节   input   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!