File
File类概述和构造方法
File类介绍
- 它是文件和目录路径名的抽象表示
- 文件和目录是可以通过File封装成对象的
- 对于FIle而言言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的
File类的构造方法
public static void main(String[] args) {
//通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
File file1=new File("D:\\phx\\java.txt");
System.out.println(file1);//D:\phx\java.txt
//从父路径名字符串和子路径名字符串创建新的File实例
File file2=new File("D:\\phx","javaee.txt");
System.out.println(file2);//D:\phx\javaee.txt
//从父抽象路径名和子路径名字符串创建新的 File实例
File file3=new File("D:\\phx");
System.out.println(file3);//D:\phx
File file4=new File(file3,"javase.txt");
System.out.println(file4);//D:\phx\javase.txt
System.out.println(file4.getAbsolutePath());//D:\phx\javase.txt
File file5=new File("phx");//相对路径
System.out.println(file5);//phx
System.out.println(file5.getAbsolutePath());//D:\Program Files\idea\WorkSpace\JavaSE\phx
}
File类创建功能
public static void main(String[] args) throws IOException {
//:在F:盘下创建phx目录 如果存在,创建失败返回false 不存在创建成功,返回true
File file=new File("F:\\phx");
System.out.println(file.mkdir());//true
System.out.println(file.mkdir());//false
//在F:\phx目录下创建java.txt文件
File file1=new File(file,"java.txt");
System.out.println(file1.createNewFile());
//在F:\phx目录下创建javase.txt文件
File file2=new File("F:\\phx","javase.txt");
System.out.println(file2.createNewFile());
//在F:\phx目录下创建demo01目录
File file3=new File("F:\\phx\\demo01");
System.out.println(file3.mkdir());
//在F:\phx\demo01目录下创建text目录
File file4=new File(file3,"text");
System.out.println(file4.mkdir());
//在F:\phx\demo01\text目录下创建java.txt文件
File file5=new File(file4,"java.txt");
System.out.println(file5.createNewFile());
//在F盘创建多级目录
File file6=new File("F:\\phx\\zs\\szs\\zs\\zs");
System.out.println(file6.mkdirs());
}
File类判断和获取功能
- 判断功能
- 获取功能
public static void main(String[] args) {
//创建File对象
File file=new File("F:\\phx\\demo01\\text");
File file1=new File(file,"java.txt");
//判断是否是目录
System.out.println(file.isDirectory());//true
System.out.println(file1.isFile());//true
//判断是否使文件
System.out.println(file.isFile());//false
System.out.println(file1.isDirectory());//false
//判断目录是否存在
System.out.println(file.exists());
//判断文件是否存在
System.out.println(file1.exists());
//获取绝对路径
System.out.println(file1.getAbsolutePath());//F:\phx\demo01\text\java.txt
//抽象路径名转换为路径名字符串
System.out.println(file1.getPath());//F:\phx\demo01\text\java.txt
//抽象路径名表示的文件或目录的名称
System.out.println(file1.getName());//java.txt
System.out.println(file.getName());//text
//获取此抽象路径名表示的目录中的文件和目录的名称字符串数组
String[] list = file1.list();
for (String str : list) {
System.out.println(str);
}
//此抽象路径名表示的目录中的文件和目录的File对象数组
File[] files = file1.listFiles();
for (File file2 : files) {
System.out.println(file2);
}
}
File类删除功能
- 删除目录注意事项:如果一个目录中有内容(目录,文件),不能直接删除。应该先删除目录中的内容,最后才能删除目录
//删除由此抽象路径名表示的文件或目录
public static void main(String[] args) {
//删除F:\phx\demo01\text目录下的java.txt
File file=new File("F:\\phx\\demo01\\text\\java.txt");
System.out.println(file.delete());//如果存在 删除成功返回true 不存在返回false
删除F:\phx\demo01\下的text目录
File file1=new File("F:\\phx\\demo01\\text");
System.out.println(file1.delete());
删除F:\phx\下的demo01目录 如果该目录下还存在文件或目录则删除失败
File file2=new File("F:\\phx\\demo01");
System.out.println(file2.delete());
}
- 绝对路径和相对路径的区别
- 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:E:\itcast\java.txt
- 相对路径:必须使用取自其他路径名的信息进行解释。例如:myFile\java.txt