java实现文件夹所有内容的复制-IO流

3 篇文章 0 订阅
java复制文件夹(包括内容)
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class MyCopy
{ 
	static String oldfile="D:"+File.separatorChar+"HBuilder";//复制的源目录
	static String newfile="D:"+File.separator+"java"+File.separator+"java";//将要放置的目录
    public static void main(String[] args)
    {
    	File file=new File(newfile);
    	file.mkdirs();
        try {
			path(oldfile);
		} catch (Exception e) {
			e.printStackTrace();
		}
    }
    public static void path(String path) throws Exception
    {
    	File file=new File(path);
    	if(file!=null)
    	{
    	    File f[]=file.listFiles();
    	    for(File i:f)
    	    {
    	    	if(i.isFile())
    	    	{
    	    		String str=i.getAbsolutePath();
        			FileInputStream fis=inPut(str);
        			FileOutputStream fos=outPut(str);
        			copy(fis,fos);
    	    		System.out.println("复制文件"+i.getName());
    	    	}
    	    	else if(i.isDirectory())
    	    	{
    	    		File file1=new File(i.getPath().replace(oldfile, newfile));
    	    		file1.mkdir();
    	    		System.out.println("复制文件夹"+i.getPath());
    	    	    path(i.getPath());    	    		
    	    	}
    	    }
    	}
    }
    public static FileInputStream inPut(String path) throws Exception
    {
    	FileInputStream fis=new FileInputStream(path);
    	return fis;
    }
    public static FileOutputStream outPut(String path) throws Exception
    {
    	 FileOutputStream fos=new FileOutputStream(path.replace(oldfile, newfile));
    	 return fos;
    }
    public static void copy( FileInputStream fis, FileOutputStream fos) throws Exception
    {
    	 byte b[]=new byte[1024];
	     while(fis.read(b)!=-1)
	     {
	         fos.write(b);
	     }
	     fis.close();
	     fos.close();  
    }    
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值