import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*1. 准备一个内容大的文件,100M左右,
* 比较字节流单字节拷贝和数组拷贝的效率,
* 看看那种方式效率高.
*/public class Test1 {
public static void main(String[] args) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\Users\\Administrator\\Desktop\\Test\\1.wmv"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\Test\\tv\\a.wmv"));
long sig = sig(bis, bos);
long byte1 = byte1(bis, bos);
System.out.println(sig>byte1 ?"单字节拷贝":"数组拷贝");
bis.close();
bos.close();
}
private static long byte1(BufferedInputStream bis, BufferedOutputStream bos) throws IOException {
long s = System.currentTimeMillis();
int len = 0;
byte[] b = new byte[1024];
while((len = bis.read(b))!=-1) {
bos.write(b, 0, len);
}
long d = System.currentTimeMillis();
// System.out.println(d-s);
return d-s;
}
private static long sig(BufferedInputStream bis, BufferedOutputStream bos) throws IOException {
long s = System.currentTimeMillis();
int i = 0;
while((i = bis.read()) != -1 ) {
bos.write(i);
}
long d = System.currentTimeMillis();
// System.out.println(d-s);
return d-s;
}
}