/**
* 用缓冲流的方式复制文件
* 单字节
* 已经减少了跟硬盘的交互次数
* @throws IOException
*/
@Test
public void testMethod3()throws IOException{
System.out.println("开始复制文件...");
long begin=System.currentTimeMillis();
//构建输入低级流
InputStream is=new FileInputStream("d:/aa/tedu.zip");
//构建输入高级流
BufferedInputStream bis=new BufferedInputStream(is);
//构建输出低级流
OutputStream os=new FileOutputStream("d:/aa/tedu4.zip");
//构建输出高级流
BufferedOutputStream bos=new BufferedOutputStream(os);
//单字节复制数据
int d=-1;
while((d=bis.read())!=-1){
bos.write(d);
}
bos.close();
os.close();
bis.close();
is.close();
long end=System.currentTimeMillis();
System.out.println("复制文件结束"+(end-begin));
}
/**
* 用缓冲流的方式复制文件
* 多字节
* 1.减少了跟硬盘的交互次数
* 2.人为自己做了一个缓冲,减少循环数
* @throws IOException
*/
@Test
public void testMethod4()throws IOException{
System.out.println("开始复制文件...");
long begin=System.currentTimeMillis();
//构建输入低级流
InputStream is=new FileInputStream("d:/aa/tedu.zip");
//构建输入高级流
BufferedInputStream bis=new BufferedInputStream(is);
//构建输出低级流
OutputStream os=new FileOutputStream("d:/aa/tedu5.zip");
//构建输出高级流
BufferedOutputStream bos=new BufferedOutputStream(os);
//多字节复制数据
byte[] buf=new byte[1024*1024*4];
int len=-1;
while((len=bis.read(buf))!=-1){
bos.write(buf,0,len);
}
bos.close();
os.close();
bis.close();
is.close();
long end=System.currentTimeMillis();
System.out.println("复制文件结束"+(end-begin));
}