A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 晓寒轻 中级黑马   /  2016-6-23 23:07  /  746 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/*
* IO的自定义工具类
*/
public class MyIOUtils {
        //实现文件的复制,输入两个文件对象
        public static void copyFile(File srcFile,File desFile) throws IOException {
                if (!srcFile.isFile()) {
                        System.out.println("源文件有误");
                        return;
                }
                if (!desFile.exists()) {
                        desFile.createNewFile();
                }
                //使用高效流
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(desFile));
                //读取并写入
                byte[] bytes = new byte[8192];
                int i;
                while((i=bis.read(bytes))!=-1){
                        bos.write(bytes, 0, i);
                }
                //关流
                bis.close();
                bos.close();
        }

        //文件的复制,输入两个文件地址对象
        public static void copyFile(String srcString,String desString) throws IOException{
                //直接调用重载的方法
                File srcFile = new File(srcString);
                File desFile = new File(desString);
                copyFile(srcFile, desFile);
        }

        //文件夹的复制
        public static void copyDir(File srcDir, File desDir) throws IOException {
                if (!srcDir.isDirectory()) {
                        System.out.println("源文件夹有误");
                        return;
                }
                if (!desDir.isDirectory()) {
                        System.out.println("目标文件夹有误");
                        return;
                }
                //在目标文件夹中建立源文件夹目录
                File newDesDir = new File(desDir,srcDir.getName());
                newDesDir.mkdir();
                //首先将源文件夹分成各个文件
                File[] files = srcDir.listFiles();
                for (File file : files) {
                        if (file.isFile()) {
                                File desFile = new File(newDesDir,file.getName());
                                copyFile(file, desFile);
                        }else {
                                if (file.isDirectory()) {
                                        //递归调用
                                        copyDir(file, newDesDir);
                                }
                        }
                }
        }

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马