package testFile;
import java.io.*;
public class FileAndDirCopy {
	
	//注意:任何文件(包括图片,音乐,影视,压缩文件等等)复制都要用字节流,字符流只能复制txt文档;
	public static void main(String[] args) throws Exception {
		
		//复制开始时获得系统的当前时间
		long start =System.currentTimeMillis();//记录开始运行时间单位为毫秒;
		
		//要复制的目源(源目录)
		File from=new File("D:\\");
		
		//复制到的目录(目标目录)
		File to=new File("E:\\");
		
		System.out.println("正在复制,请稍后.......");
		
		//调用复制方法
		copy(from ,to);
		
		//复制结束时获得系统时间
		long end=System.currentTimeMillis();
		
		System.out.println("复制完成!!!");
		
		//从毫秒转成秒
		System.out.println("总费时:"+(end-start)/1000.0+"秒");
		
		
	}
	
	
	/**
	 * 
	 * @param from 要复制的目录
	 * @param to 复制到目录
	 * @throws Exception 
	 */
	public static void copy(File from,File to) throws Exception{
		
		//获得复制文件下下所有文件
		File []fs=from.listFiles();
		
		//遍历文件
		for(int i=0;i<fs.length ;i++){
			
			//如果是一个目录
			if(fs[i].isDirectory()){
				
				//获得目录的名字
				String dirname=fs[i].getName();
				
				//创建要生成目录的绝对路径
				String dirpath=to+"\\"+dirname;  
				
				File f=new File(dirpath);
				
				//创建一个目录
				f.mkdir();
				
				//调用复制文件夹方法
				copy(fs[i],f);
				
				
			}else{
				
				//获得文件名
				String filename=fs[i].getName();
				
				//获得的文件的绝对路径
				String filepath=to+"\\"+filename;
				
				//建好文件;
				File f=new File(filepath);
				
				//复制文件内容方法
				copyFile(fs[i],f); //将原文件的内容复制到新文件里来;
			}
		}
	}
	
	
	/**
	 *  //文件复制的方法
	 * @param from 要复制的文件
	 * @param to //复制到的文件
	 * @throws Exception
	 */
	public static void copyFile(File from ,File to) throws Exception{
		
		//构建一个文件输入流对象
		FileInputStream fin=new FileInputStream(from);
		
		//构建以个文件输出流对象
		FileOutputStream fout=new FileOutputStream(to);
		
		//缓冲输入流
		BufferedInputStream bin=new BufferedInputStream(fin);
		
		//缓存输出流
		BufferedOutputStream bout=new BufferedOutputStream(fout);
		
		//定义个字节数组,作为输入流和输出流的中介
		byte [] b=new byte[2048];
		
		//读入的字节长度如果为-1,说明没有内容了
	    int len=bin.read(b);
		while(len !=-1){
			
			//将字节数组写入输出流中
			bout.write(b,0,len);
			len=bin.read(b);
		}
		
		//关闭流,注意顺序
		bout.close();
		fout.close();
		bin.close();
		fin.close();
	}
	

}
最近下载更多
17860390500  LV1 2022年11月7日
saobishaojieyang  LV1 2020年4月14日
13734993  LV7 2019年8月25日
我们有一颗向往的心  LV2 2018年8月27日
18513421  LV2 2016年9月8日
zamn  LV9 2016年2月16日
zxixuan  LV2 2015年9月21日
wzg356  LV18 2015年1月3日
hee  LV9 2013年5月11日
最代码官方  LV167 2012年8月29日
最近浏览更多
yyyyyyzh  LV8 2022年12月9日
17860390500  LV1 2022年11月7日
le10000  LV2 2022年7月4日
jinxiaoao  LV6 2021年12月29日
maki666  LV1 2021年4月21日
pxqtsht  LV15 2020年11月18日
夏呆毛  LV5 2020年8月31日
JAVALDZ  LV6 2020年5月21日
wei112233  LV15 2020年5月20日
saobishaojieyang  LV1 2020年4月14日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友