黑马程序员技术交流社区

标题: 今天学了文件的复制 就写了文件夹的复制 欢迎提出修改y... [打印本页]

作者: CHENVICTORY    时间: 2015-10-10 22:16
标题: 今天学了文件的复制 就写了文件夹的复制 欢迎提出修改y...
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
   // 文件夹的复制(假设文件夹里面都是字符型文件)
public class CopyFile {
        public static void main(String[] args) throws IOException {
                System.out.println("请输入要进行复制的文件夹(要求里面都是字节型文件):");//F:\\hello
                //Scanner sc =new Scanner(System.in);
                //String s1=sc.nextLine();
                String s1="F:\\新建文件夹";
                System.out.println("请输入要进行复制的文件存放的目标文件夹");//F:\\新建文件夹
                //String s2=sc.nextLine();
                String s2="F:\\yanzheng";
                 //新建一个对象指向 目标路径
                File file2=new File(s2);
                //新建一个对象指向 复制文件夹
                File file1=new File(s1);
                 file2=new File(file2,file1.getName());
                file2.mkdir();
                // 在file2下建一个以file1为名字的文件,不行 我要建一个文件夹 而不是文件
               
                 copy(file1,file2);
               
                       
                }
       

        private static void copy(File file1, File file2) throws IOException {
               
               
                File [] fileArray= file1.listFiles();
                if(fileArray.length!=0){
                for (File fi : fileArray) {
                        if(fi.isDirectory())// 是文件夹
                        {
                                File fil1=new File(file2.getAbsolutePath(),fi.getName());
                                fil1.mkdir();
                                System.out.println(fil1.getAbsolutePath());
                            File fil=new File(fi.getAbsolutePath());
                                copy(fil,fil1);
                        }
                        else// 是文件
                        {
                                File mu=new File(file2,fi.getName());
                                mu.createNewFile();
                                System.out.println(mu.getAbsolutePath());
                                FileReader fr = new FileReader(fi.getAbsolutePath());
                                char [] chs=new char[100];
                                FileWriter fw = new FileWriter(mu,true);
                                int num=-1;
                                while((num=fr.read(chs))!=-1){
                                fw.write(chs,0,num);
                                fw.flush();
                        }
                               
                                fr.close();
                                fw.close();
                                }
               
        }

}}
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2