黑马程序员技术交流社区

标题: IO流的问题 [打印本页]

作者: 天子万年    时间: 2017-7-8 21:44
标题: IO流的问题
package pps;

import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;   
import java.io.IOException;  
  
  
public class dwef {  
    public static void main(String[] args) {  
        copyFile("c:/data1.txt", "D:/test.txt");  
        copyDirectiory("c:/123", "D:/test");  
    }  
      
    /*
     * 拷贝文件到另一个路径
     * @source 原文件
     * @newpath 新文件
     */  
    public static void copyFile(String source, String newpath){  
        FileInputStream in=null;  
        FileOutputStream out=null;  
        try {  
            in = new FileInputStream(source);//in 流源文件  
            File file=new File(newpath);//创建file对象  
              
            if(!file.exists()){  
                file.createNewFile();  
            }  
            out =new FileOutputStream(file);//形成输出流  
            int len;  
            byte b[]=new byte[1024];//缓冲区  
            while ((len=in.read(b))!=-1) {  
                for (int i = 0; i < len; i++) {  
                    out.write(b[i]);  
                }  
            }  
        } catch (FileNotFoundException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }finally{  
            try {  
                in.close();  
                out.close();  
            } catch (IOException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
        }  
    }  
    /*
     * 拷贝文件夹下所有文件
     * @source 原路径
     * @newpath 新路径
     */  
    public static void copyDirectiory(String source,String newpath) {  
        new File(newpath).mkdirs();//创建目录  
        //获取源文件夹当前下的文件或目录  
        File files[]=new File(source).listFiles();  
        for (int i = 0; i < files.length; i++) {  
                if (files[i].isDirectory()) {  
                        // 复制目录  
                        String sourceDir = source + File.separator + files[i].getName();  
                        String targetDir = newpath + File.separator + files[i].getName();  
                        copyDirectiory(sourceDir, targetDir);  
                }  
            if (files[i].isFile()) {  
                // 复制文件  
                copyFile(String.valueOf(files[i]), newpath + files[i].getName());  
            }  
        }  
    }  
      
}  

请问这个为啥复制完了之后test文件夹里只有123文件夹里东西而没有123文件夹啊?




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