您的位置:首页 > 编程语言 > Java开发

java学习_File快速拷贝

2015-10-29 15:06 218 查看
// 第一种:通过字节流实现快速拷贝文件

try {

long before=System.currentTimeMillis();
FileInputStream fis=new FileInputStream("web.rar");
BufferedInputStream bis=new BufferedInputStream(fis,1024*1000);//缓冲每次1MB
FileOutputStream fos=new FileOutputStream("web(副本).rar");
BufferedOutputStream bos=new BufferedOutputStream(fos, 1024*1000);
byte input[]=new byte[1024*100];//每次读取100KB
int count=0; //磁盘读取次数
while (fis.read(input)!=-1) {
fos.write(input);
count++;
}
bis.close();
bos.close();
fis.close();
fos.close();
System.out.println("耗时:"+(System.currentTimeMillis()-before)+" ms");
System.out.println("读取次数:"+count);

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}


  我测试了一个70MB的rar文件的读取,仅仅72毫秒左右即可(我的是个金士顿渣渣的固态盘)

  


第二种:使用Apache实现快速拷贝

File file=new File("web.rar");
File file2=new File("web(副本).rar");
try {
long before=System.currentTimeMillis();
FileUtils.copyFile(file, file2);
System.out.println("耗时:"+(System.currentTimeMillis()-before));
} catch (IOException e) {
e.printStackTrace();
}


 


耗时长了一点点,但是操作实在是太方便了,瞬间不想用java原生的IO流了。就是要引用Apache库;可去这里下载:http://download.csdn.net/detail/fm158512775/9224057
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: