zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    洛谷 P1032 子串变换
    RCTF 2017 easyre153
    SUCTF 2016 : dMd
    南邮 base64全家桶
    洛谷 P1908 逆序对
    2019中山大学程序设计竞赛 Triangle
    WhiteHat Contest 11 : re1100
    P1010 幂次方
    洛谷 P1088 火星人
    南邮 骚年来一发吗
  • 原文地址:https://www.cnblogs.com/fanmiao/p/4920585.html
Copyright © 2011-2022 走看看