File 类
也叫文件类,数据源。
构造方法
File(String parent,String child)
File(File parent,String child)
File(String name)
String path = "C:/Users/ASUS/Desktop/a.png" ;
File f1 = new File(path);
//直接构造文件类对象
File f2 = new File("C:/Users/ASUS/Desktop","a.png");
//分隔开开进行前面是 父文件夹 后面是内容
File f3 = new File(new File("C:/Users/ASUS/Desktop"),"a.png");
//创建文件对象来进行的
成员变量
separatorChar //文档分割符
** 文件路径的书写 **
String path = "image/a.png";
//直接利用 / 来进行书写
path = "image"+File.separatorChar+"a.png";
//用分隔的常量进行拼接
绝对路径和相对路径
String path = "C:/Users/ASUS/Desktop/a.png";
//绝对路径
//存在盘符的就是代表的绝对路径
File f1 = new File(path);
//相对路径
//所谓的相对路径指的就是 相对于当前的工程下来说的
File f2 = new File("a.png");
常用的方法
- getName 文件名 就是名称
File f = new File("C:/Users/ASUS/Desktop/a.png");
System.out.println("名称 :"+f.getName());
- getPath 路径名(构建时的路径名)
System.out.println("名称 :"+f.getPath());
- getAbsolutePath 返回绝对路径
System.out.println("绝对路径名称"+f.getAbsolutePath());
- getParent 返回父的路径
System.out.println(f.getParent());
- exists 是否存在文件对象
- isFile 是否时文件
- isDirectory 是否时文件夹
/**
文件的状态
*/
System.out.println(f.exists());
System.out.println(f.isFile());
System.out.println(f.isDirectory());
- createNewFile 创建新文件
- delete 删除文件
File f2 = new File("C:/Users/ASUS/Desktop/a/a.txt");
//在文件夹a中创建a.txt文件
boolean flag = f2.createNewFile();
//创建文件
System.out.println(flag);
/**
*删除的时候我们首先在a的文件夹里创建了一个b文件,这个默认是txt的,然后在进行删除的
*/
File f3 = new File ("C:/Users/ASUS/Desktop/a/b");
flag = f3.createNewFile();
System.out.println(flag);
flag = f3.delete();
System.out.println(flag);
- mkdir 创建目录 (必须确保上级目录存在)
- mkdirs (上级目录可以不存在 多级创建)
//创建单级目录
File f = new File("C:/Users/ASUS/Desktop/a/test/b");
boolean flag = f.mkdirs();
System.out.println(flag);
//创建多级目录
f = new File("C:/Users/ASUS/Desktop/a/test/c");
flag = f.mkdir();
System.out.println(flag);
- list 下级名称
- listFiles 下级名称对象
- list
File ff = new File("C:/Users/ASUS/Desktop/a");
//下级文件或者文件夹的名称
String[] sub = ff.list();
for (String s: sub) {
System.out.println(s);
}
//下级对象 listFiles
//指的是当前的袭击文件对象
File[] files = ff.listFiles();
for (File file: files) {
System.out.println(file.getAbsolutePath());
}
//列出所有的盘符
//即就是当前电脑上的磁盘
File[] roots = ff.listRoots();
for(File r : roots) {
System.out.println(r.getAbsolutePath());
}
例子
简单遍历一个文件夹的文件并打印
思路分析:首先我们应该先由一个文件对象
- 传入这个文件对象
- 先判断这个对象是否存在
- 再打印他的名称
- 然后判断是否是文件夹
- 是就遍历当前文件夹的文件对象
- 然后再进行递归自己调自己
for (int i = 0; i < deep; i++) {
System.out.print("-");
}
if (file.exists()) {
System.out.println(file.getName());
if (file.isDirectory()) {
for (File f : file.listFiles()) {
printName(f, deep+1);
}
}
} else {
return;
}