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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

狂战斧

初级黑马

  • 黑马币:33

  • 帖子:17

  • 精华:0

© 狂战斧 初级黑马   /  2016-6-27 23:14  /  381 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

老师让用到递归和io流  作为小白的我一脸懵逼啊

UN[_[_5OY(VLG2]]2S{L)%1.png (4.7 KB, 下载次数: 7)

老师会要用到递归 求解啊

老师会要用到递归   求解啊

3 个回复

倒序浏览
zhoubinjian 来自手机 金牌黑马 2016-6-28 00:46:46
沙发
思路是:定义一个方法,将旧文件用listfiles遍历,判断是否为文件,是的话再次调用该方法,否则用io流读,然后写入文件(注意这里是要取旧文件的名字,用getName(),目标文件是放在新目录,用getpath()获取)
回复 使用道具 举报
package com.heima.Day23;

import java.io.File;

public class Test10 {

        /**
         *
         */
        public static void main(String[] args) throws Exception {
                File f = new File("F:\\Test");
                delete(f);

        }

        public static void delete(File f) {
                File[] fi = f.listFiles();

                if (fi == null) {
                        return;
                }

                for (File file : fi) {
                        if (file.isFile()) {
                                file.delete();
                        } else {
                                delete(file);

                        }

                }

                f.delete();

        }

}
回复 使用道具 举报
package com.heima.Day23;

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

public class Test10 {

        /**
         *
         */
        public static void main(String[] args) throws Exception {
                File f = new File("F:\\MyWife");
                File fe = new File("F:\\copy");
               
                copy(f,fe);

        }

        public static void copy(File f, File fe) {
                File fil = new File(fe, f.getName());
                fil.mkdirs();
                File[] fi = f.listFiles();

                for (File file : fi) {
                        if (file.isFile()) {
                                try {
                                        BufferedInputStream bis = new BufferedInputStream(
                                                        new FileInputStream(file));
                                        int a;
                                        File ff = new File(fil, file.getName());
                                        BufferedOutputStream bos = new BufferedOutputStream(
                                                        new FileOutputStream(ff));
                                        while ((a = bis.read()) != -1) {
                                                bos.write(a);
                                        }
                                        bos.close();
                                        bis.close();
                                } catch (Exception e) {
                                        e.printStackTrace();
                                }

                        } else {
                                copy(file, fil);

                        }

                }

       

        }

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马