一、enum --- 枚举--JDK1.5
对能够列举的数据进行封装 ---- 枚举类型
枚举本质上也是class。
定义枚举:
enum Week{
...
}
enum定义的枚举实际上直接继承了Enum<E extends Enum<E>>。
在枚举类型中,构造方法默认是private(私有)。
案例:
enum Color{
RED("红" ,"夕阳红"),GREEN("绿" ,"草绿"),BLUE("蓝" ,"深海蓝");
private String name;
private String dis;
Color(String name, String dis){
this.name = name;
this.dis = dis;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDis() {
return dis;
}
public void setDis(String dis) {
this.dis = dis;
}
}
二、File
1、定义
File表示文件或文件夹。
2、构造
File(String pathname)
File(URI uri) //URI 统一资源标识,URL统一资源定位
3、常用方法
创建
createNewFile()---创建新文件---当文件不存在的时候才会创建
mkdir()---创建目录 ---每次只能创建一层目录
mkdirs()---创建多层目录
删除
delete()---删除文件或者目录---如果删除的是目录且该目录下有子文件或子目录则删除失败
判断
canWrite()---判断此文件是否可写
isDirectory()---判断是否是一个目录 ***
isFile()---判断是否是一个文件 ***
exists()--判断此文件或者目录是否真实存在的 ***
isAbsolute()---判断file所表示的文件的路径是否是一个绝对路径
isHidden()---判断file是否是一个隐藏文件
获取
listFiles()---获取指定目录下子文件和子目录组成的数组
getName()---获取文件名
getAbsoluteFile()---获取file所在绝对路径
练习:利用File的api实现统计某个目录(包括子目录)中的所有png图片的数量。
请选择要统计的文件:
1:统计html文件
2:统计css文件
3:统计js文件
4:统计图片文件
png,jpeg,jpg,gif
基础代码:
public class Day11Demo03 {
private static int count=0;
public static void main(String[] args) {
counttor(new File("D:\\test\\gbts_12_proton\\assets\\tt.txt"));
System.out.println("png文件数量:"+count);
}
public static void counttor(File file){
if(file.isDirectory()){
File[] files = file.listFiles();
//遍历目录下的所有文件及文件夹
for (File f : files) {
if(f.isDirectory()){
//如果是目录,继续打开
counttor(f);
}else{
//如果是文件则判断是否为png图片
if(f.getName().toLowerCase().endsWith("png")) count++;
}
}
}else{
System.out.println("不是一个目录~");
}
}
}
4、文件处理中的路径问题
分隔符:
window: 路径分隔符使用"\",程序中"D:\\test\\logo.png"
Linux/Mac: 路径分隔符使用"/"
路径:
相对路径:
相对于当前文件的位置
. 表示当前目录
.. 表示上一层目录
绝对路径:
window -- 盘符+路径 D:\\workspace\\index.html
Linux/Mac -- /+路径 /workspace/index.html
java程序中的路径分隔符:根据不同系统平台自适应
File.separator
System.getProperty("file.separator")
三、RandomAccessFile
在操作文件的时候会把文件看做一个大型的字节数组。
每一个RandomAccessFile对象创建好之后默认都是从第0个字节开始操作。