Java入门案例:复制文件夹

复制多级目录案例分析:
1.创建数据源目录的File对象,路径是M:\IODemo\javaTest\java
2.获取源目录File对象的名称java
3.创建目的地目录File对象,路径名是模块名加Java组成
4.判断目的地目录对应的File是否存在,不存在就创建
5.获取源目录下File表示的抽象路径名数组
6.遍历数组得到每一个文件名字符串
7.在目的地目录下以获取到的名称创建文件
8.创建复制方法,最后释放资源
9.调用方法,复制文件夹
package anli;

import java.io.*;

/*
复制多级目录案例分析:
1.创建数据源目录的File对象,路径是M:\IODemo\javaTest\java
2.获取源目录File对象的名称java
3.创建目的地目录File对象,路径名是模块名加Java组成
4.判断目的地目录对应的File是否存在,不存在就创建
5.获取源目录下File表示的抽象路径名数组
6.遍历数组得到每一个文件名字符串
7.在目的地目录下以获取到的名称创建文件
8.创建复制方法,最后释放资源
9.调用方法,复制文件夹
 */
public class copy_duojiFile {
    public static void main(String[] args) throws IOException {
        //创建数据源目录的File对象,路径是M:\IODemo\javaTest\java
        File f = new File("M:\\IODemo\\javaTest\\java");
        //获取源目录File对象的名称java
        String fname = f.getName();
        //创建目的地目录File对象,路径名是模块名加Java组成
        File f1 = new File("IO_Test", fname);
        //判断目的地目录对应的File是否存在,不存在就创建
        if (!f1.exists()) {
            f1.mkdir();
        }
        //获取源目录下File表示的抽象路径名数组,目录中的文件路径数组
        File[] files = f.listFiles();
        //遍历数组得到每一个文件名字符串
        for(File a:files){
            //获取文件的名称
            String namea = a.getName();
            //在目的地目录下以获取到的名称创建文件
            File f2 = new File(f1,namea);
            //调用方法,复制文件
            copyFile(a,f2);
        }

    }
    //创建复制文件方法,完成后释放资源
    public static void copyFile(File f,File f2) throws IOException {
        //创建字节缓冲流读数据对象
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
        //创建字节缓冲流写数据对象
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f2));
        //读取数据,一次一个字节数组
        byte[] bys = new byte[1024];
        int len;
        while((len=bis.read(bys))!=-1){
            //写数据,一次一个字节数组
            bos.write(bys,0,len);
        }
        //释放资源
        bis.close();
        bos.close();
    }
}

 


版权声明:本文为sbgunlun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。