import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class FileCopy{

	public static void main(String[] args){
		if(isNull(args[0]) || isNull(args[1])){
			System.out.println("args error.");
			return ;
		}
		long start = System.currentTimeMillis();

		if("0".equals(args[1]))
			oldIOCopy(args[0], args[0] + "copy_0");
		else
			newIOCopy(args[0], args[0] + "copy_1");

		System.out.println(System.currentTimeMillis() - start);
	}
	
	static boolean isNull(String str){
		if(null == str || "".equals(str.trim()))
			return true;
		else
			return false;
	}

	static void oldIOCopy(String name, String copy){
		try{
			File f = new File(name);	
			File ftmp = new File(copy);
			
			FileInputStream in = new FileInputStream(f);
			FileOutputStream out = new FileOutputStream(ftmp);

			byte[] buff = new byte[1024];

			int len = 0;
			while((len = in.read(buff)) != -1){
				out.write(buff, 0, len);
			}

			out.close();
			in.close();

		}catch(Exception e){
			System.out.println("Exception.");
		}	
	}

	static void newIOCopy(String name, String copy){
		try{
			FileChannel in = new FileInputStream(new File(name)).getChannel();	
			FileChannel out = new FileOutputStream(new File(copy)).getChannel();

			ByteBuffer buffer = ByteBuffer.allocate(1024);
			
			while(in.read(buffer) != -1){
				buffer.flip(); // Prepare for writing
				out.write(buffer);
				buffer.clear();// Prepare for reading
			}

			out.close();
			in.close();
		}catch(Exception e){
			System.out.println("Exception");
		}	
	}
}
最近下载更多
gwl  LV8 2020年9月3日
2293778908  LV12 2019年4月18日
xuzhicheng111  LV18 2018年2月9日
duofuge  LV1 2017年8月11日
dagf113225  LV68 2017年8月6日
alexbrandon  LV1 2017年7月31日
听雨落声  LV2 2016年8月23日
2010211122  LV15 2016年6月23日
qq773152  LV3 2015年12月4日
流浪者  LV29 2015年11月20日
最近浏览更多
神龙摆尾无拘束  LV2 2023年3月17日
912727849  LV3 2021年8月5日
xb1406112453  LV5 2021年3月20日
味卜鲜码  LV6 2020年8月14日
KKnight  LV1 2020年6月20日
zhangshuang1 2020年6月11日
暂无贡献等级
346675489  LV2 2020年5月31日
wlfzuidaima  LV1 2020年5月8日
放开那个难海纸  LV22 2019年9月30日
菜鸟真的是菜  LV8 2019年9月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友