71_常用类_file类_打印目录树状结构_递归算法_(枚举补充)

来源:互联网 发布:mirrorlink已认证软件 编辑:程序博客网 时间:2024/03/29 07:50

树状结构展现文件结构

  • 编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹),利用File类和递归知识,实现树状结构的展示,代码如下:
import java.io.File;import java.io.IOException;public class TestFile {    /**     * 1.File文件类的常见构造器,常见方法的使用     * 2.递归:     *      概念:在java代码中出现,出现本身调用自己的现象,我们称之为递归。     *      组成:递归体;递归头。     *      注意事项:     *          递归若没有递归头,递归将是死递归了。     */    public static void main(String[] args) {        File f = new File("d:/src3");        printFile(f, 0);    }    static void printFile(File file, int level) {        for (int i = 0; i < level; i++) {            System.out.print("-");        }        System.out.println(file.getName());        if (file.isDirectory()) {            File[] files = file.listFiles();            for (File temp : files) {                printFile(temp, level + 1);            }        }    }}

枚举

  • 枚举类型:
    • 只能够取特定值中的一个
    • 使用enum关键字
  • 所有的枚举类型隐性地继承自 java.lang.Enum。(枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final的。可以直接通过枚举类型名直接使用它们。)

强烈建议当你需要定义一组常量时,使用枚举类型
尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类来实现,没有必要引入复杂性!

  • 代码
public class TestEnum {    public static void main(String[] args) {        Week ww = Week.FRIDAY;// 定义一个枚举类型对象        Week ww2 = Week.values()[2];// 返回每局的第三个元素!!        System.out.println(ww2);        String temp = testEnum(Week.SUNDAY);        System.out.println(temp);    }    static String testEnum(Week w) {        switch (w) {        case SUNDAY:            return "日";        case MONDAY:            return "一";        case TUESDAY:            return "二";        case WEDNESDAY:            return "三";        case THURSDAY:            return "四";        case FRIDAY:            return "五";        case SATURDAY:            return "六";        }        return "";    }}enum Week {    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}