一、File类基本用法
1、文件的创建
导入:
import java.io.File;
- 绝对路径创建
File f2 = new File("d:/b.txt");
f2.createNewFile();
- 相对路径创建
//默认当前文件夹路径
File f = new File("a.txt");
f.createNewFile();
2、File属性查看
File f = new File("a.txt");
System.out.println("文件是否存在?"+f2.exists());
System.out.println("这个是目录?"+f.isDirectory());
System.out.println("这个是文件?"+f.isFile());
System.out.println("文件大小:"+f.length());
System.out.println("文件名:"+f.getName());
System.out.println("目录路径:"+f.getPath());
System.out.println("文件的修改时间:"+new Date(f.lastModified())); //这里要导入时间模块,否则显示的是一串数字
3、目录的创建
- mkdir创建一个目录
目录结构中有一个不存在,则不会创建整个目录树
File c = new File("d:/a/b/c");
boolean flag = c.mkdir();//只能创建一个目录
System.out.println(flag); //false
- mkdirs创建多个目录
目录结构中有一个不存在也没关系;创建整个目录树
File c = new File("d:/a/b/c");
boolean flag1 = c.mkdirs(); //创建多个目录
System.out.println(flag); //true
二、使用递归算法,以树状结构展示目录树
import java.io.File;
public class File_TestTree {
public static void main(String[] args) {
File file = new File("d:/Python/aotu");
treeReturn(file,0);
}
public static void treeReturn(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) {
treeReturn(temp,level+1); //增强型for循环
}
}
}
}
三、枚举
1、创建枚举的类型
enum Season{
SPRING,SUMMER,FALL,WINTER
枚举体(放置常量要大写)
}
2、枚举的使用
import java.util.Random;
public class MeiJu {
public static void main(String[] args) {
System.out.println(Season.SPRING);
for(Season s: Season.values()) {
System.out.println(s);
}
int a = new Random().nextInt(4);
System.out.println(a);
switch(Season.values()[a]) { //switch要带break
case SPRING:
System.out.println("春");
break;
case SUMMER:
System.out.println("夏");
break;
case FALL:
System.out.println("秋");
break;
case WINTER:
System.out.println("冬");
break;
}
}
}
enum Season{
SPRING,SUMMER,FALL,WINTER
}
enum Forset{
FLOWER,LEAF,ANIMAL,GRASP
}
3、注意
1. 当你需要定义一组常量时,可以使用枚举类型
2. 尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类来实现,没有必要引入枚举,增加程序的复杂性