黑马程序员技术交流社区

标题: FileInputStream能对文件夹进行传输吗? [打印本页]

作者: SunCowbee    时间: 2016-9-11 00:43
标题: FileInputStream能对文件夹进行传输吗?
2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到D盘下任意目录

作者: flfjewffg    时间: 2016-9-13 11:25
IO流传输的是文件,不是文件夹,如果你要复制文件夹里面的文件,,就需要先在目标路径中先创建和原文件夹名一样的文件夹,在用IO操作文件.
public static void copy(File src,File dest) throws IOException {
                //把新文件的路径和源文件的文件名封装成对象
                File fi = new File(dest,src.getName());
                //在新文件夹中创建跟原文件名一样的文件夹
                fi.mkdir();
                //把源文件的路径封装成对象数组,拿到里面所有文件的对象
                File[] file2 = src.listFiles();
                //遍历源文件所有对象
                for (File file : file2) {
                        //判断如果是文件  就IO写如目标文件夹
                        if(file.isFile()){
                                BufferedInputStream bf1 = new BufferedInputStream(new FileInputStream(file));
                                BufferedOutputStream bf2 = new BufferedOutputStream(new FileOutputStream(new File(fi,file.getName())));
                                int b;
                                while((b= bf1.read())!= -1) {
                                        bf2.write(b);
                                }
                                bf1.close();
                                bf2.close();
                                //如果是文件夹 就递归调用
                        } else if(file.isDirectory()) {
                                copy(file,fi);
                        }
                       
                }
作者: SunCowbee    时间: 2016-9-13 22:39
flfjewffg 发表于 2016-9-13 11:25
IO流传输的是文件,不是文件夹,如果你要复制文件夹里面的文件,,就需要先在目标路径中先创建和原文件夹名一样 ...

谢谢分享,一起努力
作者: HuangShunyu    时间: 2017-5-15 16:17
获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到D盘下任意目录的源码有没有,能分享一下么?
作者: 丿UNDY    时间: 2017-5-15 17:24
文件夹直接新建就好了啊。。
作者: 風中雨来    时间: 2017-5-15 21:39
都可以!111111111111




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