1.File的介绍
File 类 就是当前系统中 文件或者文件夹的抽象表示
通俗的讲 就是 使用File对象 来操作我们电脑系统中的文件或者文件夹
学习File类 其实就是学习 如果通过file对象 对系统中的文件/文件夹进行增删改查
2.创建File对象
//创建一个File对象 并指定文件的路径 \转义字符
File file = new File("D:\\aaa");
/*
\\目录层级 在window系统下层级分割符为\ 但是在linux和mac系统上分割符为 /
我们得java代码是一种跨平台得语言。 我们得开发在window 但是我们项目得部署在linux.
我们使我们得代码能在任意系统下来用。 我们有两种解决办法
(1)第一种 因为window 兼容 / 和 \
*/
File file1 = new File("D:/aaa/bbb.txt");
//第二种 File.separator 根据当前代码所在的系统自动获取相应的分隔符
File file2 = new File("D:"+File.separator+"aaa"+File.separator+"bbb");
3.Flie的添加操作
File file = new File("D:\\aaa");
File file1 = new File("D:/aaa/bbb.txt");
File file2 = new File("D:"+File.separator+"aaa"+File.separator+"bbb");
//创建目录 make directory 单层目录
file.mkdir();
//创建相应的文件 这里需要抛出异常
file1.createNewFile();
//创建多层目录
file2.mkdirs();
4.File的删除操作
File file = new File("D:\\aaa");
File file1 = new File("D:/aaa/bbb.txt");
File file2 = new File("D:"+File.separator+"aaa"+File.separator+"bbb");
//创建目录 make directory 单层目录
file.mkdir();
//创建相应的文件 这里需要抛出异常
file1.createNewFile();
//创建多层目录
file2.mkdirs();
//删除文件
file1.delete();
//删除空目录
file2.delete();
//等程序退出后删除
file.deleteOnExit();
//休眠10秒
Thread.sleep(1000);
5.File的修改操作
File file = new File("D:/aaa/c.txt");
File file1 = new File("D:/aaa");
file1.mkdir();
file.createNewFile();
//设置该文件的权限为不能读
file.setReadable(false);
//设置该文件的权限为不能写
file.setWritable(false);
//设置该文件的权限为只读
file.setReadOnly();
//重命名
file.renameTo(new File("D:/aaa/d.txt"));
6.File的查询操作
File file = new File("D:/aaa/bbb/ccc");
File file1 = new File("D:/aaa/bbb/ccc/d.txt");
file.mkdirs();
file1.createNewFile();
//得到文件的名称
String name = file.getName();
System.out.println(name);
//得到文件的父级路径的名称
String parent = file.getParent();
System.out.println(parent);
//得到文件的路径名称
String path = file.getPath();
System.out.println(path);
//判断该文件对象是否是文件类型
boolean b = file.isFile();
System.out.println(b);
//判断该文件对象是否是目录类型
boolean f = file.isDirectory();
System.out.println(f);
File file2 = new File("D:/AAA");
//列出指定目录下所有的子文件的名称
String[] str = file2.list();
System.out.println(Arrays.toString(str));
File[] files = file2.listFiles();
for(File o:files){
System.out.println(o);
}
7.经典题目: File方法的递归调用。
public class Test5 {
public static void main(String[] args) {
showAllFiles("D:/aaa");
}
static void showAllFiles(String path){
//使用传入的路径构建文件对象
File file = new File(path);
//判断文件是否存在 或者文件是否为目录.
if(!file.exists()||!file.isDirectory()){
return;
}
//列出该目录下所有的文件对象。
File[] files = file.listFiles();
//遍历数组
for (File f:files){
//判断时候还是目录
if(f.isDirectory()){
System.out.println(f.getPath()+" Dir");
//继续调用本方法
showAllFiles(f.getPath());
}else{
System.out.println(f.getPath()+" ");
}
}
}
}