java 文件字符流 (复制一个不为空的目录)

来源:互联网 发布:网络推广部职责 编辑:程序博客网 时间:2024/06/05 15:16

写一个方法实现复制一个不为空的目录:

首先都知道,目录下可能有目录和文件,目录之下有会如此,就得用递归,同时,复制文件的时候也得用到字符流进行赋值:

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class CopyDirectory {    public static void main(String[] args) throws IOException {        File file1=new File("F:/a/新建文件夹");              File file2=new File("F:/a/新建文件夹2");//创建一个新目录        if(!file2.exists()){            file2.mkdirs();        }        copyDirectory(file1,file2);    }    public static void copyFile(File file1,File file2){//复制文件的方法            try(                FileInputStream fis = new FileInputStream(file1);                FileOutputStream fos = new FileOutputStream(file2);//创建字符输入输出流                ){            byte [] data=new byte[12];            int d=-1;            while((d=fis.read(data))!=-1){                fos.write(data,0,d);//将其复制到另一个文件里            }        }catch(IOException e){            e.printStackTrace();        }    }    public static void copyDirectory(File file1,File file2) throws IOException{//复制目录的方法        if(!file1.exists()){            System.out.println("该复制文件不存在");        }        else{            File [] fs=file1.listFiles();            for(File file:fs){                File copy=new File(file2,file.getName());//创建同名的文件或目录                System.out.println(copy);                if(!file.isDirectory()){                        copy.createNewFile();                    copyFile(file,copy);//是目录的话递归下去,继续创建目录下的文件或目录                }                else{                    copy.mkdir();                    copyDirectory(file,copy);//是文件的话,调用方法,复制文件                }            }        }    }}

这里写图片描述

0 0
原创粉丝点击