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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

public class FuZhiDuoCengWenJian {

        public static void main(String[] args) throws IOException {
                String s = "F:\\学习资料\\练习题";
                String s1 = "E:\\复制文件";
                File f = new File(s);
                File f1 = new File(s1);
                menth(f, f1);
        }

        public static void menth(File a, File b) throws IOException {

                File[] files = a.listFiles();
                for (File file : files) {
                        if (file.isFile()) {
                                FileInputStream fi = new FileInputStream(file);
                                String s = file.getName();
                                File f = new File(b, s);
                                FileOutputStream fo = new FileOutputStream(f);
                                byte[] arr = new byte[1024];
                                int a1;
                                while ((a1 = fi.read(arr)) != -1) {
                                        fo.write(arr, 0, a1);
                                }
                                fo.close();
                                fi.close();
                        } else if (file.isDirectory()) {
                                String s = file.getName();
                                File f = new File(b, s);
                                f.mkdirs();
                                menth(file, f);
                        }
                }
        }
}有点烧脑

8 个回复

正序浏览
郝永 发表于 2017-4-18 21:39
第一个问题,你是说没有那个"复制文件"吗,我试了,没有的话自动创建,第二个问题,都是复制的"练习题"下面的 ...

我的第一个的意思是非法输入没有进行判断。。
第二个是假设你有一个 F:\src 目录 你将这个目录复制到f:\src\下试试
回复 使用道具 举报
郝永 中级黑马 2017-4-18 21:39:20
8#
丿UNDY 发表于 2017-4-17 08:34
看出两个问题  :
1.如果目录不存在,没有进行判断。
2.如果是 复制的是同名目录,可能出现 无线复制的问题 ...

第一个问题,你是说没有那个"复制文件"吗,我试了,没有的话自动创建,第二个问题,都是复制的"练习题"下面的文件及文件夹,名字一样没改变,无线复制是什么意思?不懂,求指教
回复 使用道具 举报
回复 使用道具 举报
看出两个问题  :
1.如果目录不存在,没有进行判断。
2.如果是 复制的是同名目录,可能出现 无线复制的问题。
另外 为了通用性,最好不要将 起始的目录写死。
回复 使用道具 举报
回复 使用道具 举报
你试试多级删除。稍微有难度一些些
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
给力 顶一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马