java学习_File快速拷贝

// 第一种:通过字节流实现快速拷贝文件

		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

 

posted @ 2015-10-29 15:06  陌路黄泉  阅读(211)  评论(0编辑  收藏  举报