标签: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