黑马程序员技术交流社区

标题: 改进一个复制多级文件夹的小程序 [打印本页]

作者: 安静的喝会奶    时间: 2016-6-26 17:14
标题: 改进一个复制多级文件夹的小程序
import java.util.*;
import java.io.*;
class  CopyFiles
{
        public static void main(String[] args) throws Exception
        {
                File file = new File("D:\\BaiduMusic");
                File destFile = new File("F:\\迅雷下载");
                copyFile(file,destFile);
                System.out.println("传输完成");
        }
        private static void copyFile(File srcFile,File destFile) throws Exception
        {
                if(!destFile.exists())
                {
                        destFile.mkdir();
                }
                File[] files = srcFile.listFiles();
                for(File file:files)
                {
                        if(file.isFile())
                        {
                                String srcFileName = file.getName();
                            File aDestFile = new File(destFile,srcFileName);
                            copy(file,aDestFile);
                        }
                        else if(file.isDirectory())
                        {
                                String srcDir = srcFile.getAbsolutePath()+File.separator+file.getName();
                                String destDir = destFile.getAbsolutePath()+File.separator+file.getName();
                                copyDir(srcDir,destDir);
                        }
                }
        }
        private static void copy(File file,File destFile) throws Exception
        {
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
                int len = 0;
                byte[] bytes = new byte[1024];
                while((len=bis.read(bytes))!=-1)
                {
                        bos.write(bytes,0,len);
                }
        }
        private static void copyDir(String srcDir,String destDir) throws Exception
        {
                File destFile = new File(destDir);
                destFile.mkdirs();
                File srcFile = new File(srcDir);
                copyFile(srcFile,destFile);
        }
}



作者: 安静的喝会奶    时间: 2016-6-26 17:16
之前写了一个只能复制一级文件夹的小程序,有很多不足的,感谢指出错误的吧友

作者: 安静的喝会奶    时间: 2016-6-26 17:17
愿大家一起学习,早日进入黑马大家庭
作者: 安静的喝会奶    时间: 2016-6-26 17:18
不知道在这里能不能找到7月28号报java就业班的朋友
作者: aliali007    时间: 2016-6-26 20:41
亲,你的bis和bos要增加一条close语句,关闭流对象
作者: 安静的喝会奶    时间: 2016-6-27 23:16
aliali007 发表于 2016-6-26 20:41
亲,你的bis和bos要增加一条close语句,关闭流对象

对对。、老是忘记关闭资源




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