码迷,mamicode.com
首页 > 编程语言 > 详细

10.java拷贝文件夹

时间:2016-10-22 20:43:41      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:文件   失败   关闭   文件夹路径   rac   except   lang   crp   user   

文件复制

文件复制步骤:

  • 1.建立文件代理->File源文件/File目的文件
  • 2.设立管道,建立管道
  • 3.数据装箱
  • 4.循环读取,循环输出
  • 5.关闭流
package 文件夹的拷贝;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/*
 * 文件的拷贝
 * 1.建立代理->源文件,目标文件
 * 2.建立输入输出管道
 * 3.数据读写
 * 4.关闭流
 */
public class CopyFile {
    
    static void copyfile(String scrpath, String destpath) throws IOException{
        copyfile(new File(scrpath), new File(destpath));
    }
    
    
    static void copyfile(File scr,File dest) throws IOException{
        if (!scr.exists() ) {
            System.out.println("文件不存在");
        }else if (!scr.isFile()) {
            System.out.println("源目标不是文件");
        }
        //设立管道
        InputStream fin = null;
        OutputStream fout = null;
        
        //建立管道
        fin = new FileInputStream(scr);
        fout = new FileOutputStream(dest);
        
        //数据装箱
        byte[] bufferbox = new byte[1024];
        int len = 0;
        
        //循环读取
        while(-1 != (len = fin.read(bufferbox))){
            fout.write(bufferbox, 0, len);
        }

        //关闭流
        fout.flush();
        fout.close();
        fin.close();
    }
}

文件夹拷贝

  • 文件夹的拷贝
  • 1.文件->直接复制copyfile()
  • 2.文件夹->创建mkdir()
  • 3.递归查找子孙级
package 文件夹的拷贝;

import java.io.File;
import java.io.IOException;

/*
 * 文件夹的拷贝
 * 1.文件->直接复制copyfile()
 * 2.文件夹->创建mkdir()
 * 3.递归查找子孙级
 */
public class CopyDir {
    public static void main(String[] args) {
        //文件夹路径
        String srcpath = "/Users/xiejinhui/documents/MWeb";
        String destpath = "/users/xiejinhui/desktop/";
        //创建文件
        File dirc_src = new File(srcpath);
        File dirc_dest = null;
        if (dirc_src.isDirectory()) {
            dirc_dest = new File(destpath,dirc_src.getName());
        }
        copydirfile(dirc_src,dirc_dest);
    }

    private static void copydirfile(File dirc_src, File dirc_dest) {
        if (dirc_src.isFile()) {//如果是文件就直接拷贝
            try {
                CopyFile.copyfile(dirc_src, dirc_dest);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println("复制文件失败");
            }
        }else if (dirc_src.isDirectory()) {//如果是文件夹
            //确保目标文件夹存在
            dirc_dest.mkdirs();
            //获取下一级(如果下一级还有下一级,用for循环递归)
            for (File sub :dirc_src.listFiles() ) {
                copydirfile(sub, new File(dirc_dest, sub.getName()));
            }
        }
    }
}
  • 注意:

拷贝文件夹有两个主要函数,一个重要方法

  • 两个函数:1. 文件拷贝 2. 文件夹创立
  • 一个重要方法:递归

10.java拷贝文件夹

标签:文件   失败   关闭   文件夹路径   rac   except   lang   crp   user   

原文地址:http://www.cnblogs.com/maxtree/p/10java-kao-bei-wen-jian-jia.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!