1.File类的概述
File是文件和路径名的抽象表示。
- 文件和路径可以通过File封装成对象。
- File封装的对象可以仅仅是一个对象名。他可以是存在的,也可以是不存在的。
2.File类的构造方法
构造方法一:File(String pathname)
通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
String path = "C:\\itheima\\a.txt";
File file = new File(path);
构造方法二:File(String parent, String child)
从父路径名字符串和子路径名字符串创建新的File实例
String path1 = "C:\\itheima";
String path2 = "a.txt";
File file = new File(path1,path2);//把两个路径拼接.
System.out.println(file);//C:\itheima\a.txt
构造方法三:File(File parent, String child)
从父抽象路径名和子路径名字符串创建新的File实例
File file1 = new File("C:\\itheima");
String path = "a.txt";
File file = new File(file1,path);
System.out.println(file);//C:\itheima\a.txt
3.File类的创建功能
方法一:public boolean createNewFile()
创建一个新的空的文件
File file1 = new File("C:\\itheima\\aaa");
boolean result1 = file1.createNewFile();
System.out.println(result1);
注意:
- 1.如果文件存在,那么创建失败,返回false
- 2.如果文件不存在,那么创建成功,返回true
- 3.createNewFile方法不管调用者有没有后缀名,只能创建文件.
- 4.文件所在的文件夹必须要存在.
方法二:public boolean mkdir()
创建一个单级文件夹
File file = new File("C:\\itheima\\aaa.txt");
boolean result = file.mkdir();
System.out.println(result);
注意:
- 1.只能创建单级文件夹,不能创建多级文件夹
- 2.不管调用者有没有后缀名,只能创建单级文件夹
方法三:public boolean mkdirs()
创建一个多级文件夹
File file = new File("C:\\itheima\\aaa.txt");
boolean result = file.mkdirs();
System.out.println(result);
注意:
- 1,可以创建单级文件夹,也可以创建多级文件夹
- 2.不管调用者有没有后缀名,只能创建文件夹
4.File类的删除功能
方法: public boolean delete()
删除此抽象路径表示的文件或者目录
File file = new File("C:\\itheima\\a.txt");
boolean result = file.delete();
System.out.println(result);
注意:
- 1.不走回收站的.
- 2.如果删除的是文件,那么直接删除.如果删除的是文件夹,那么能删除空文件夹
- 3.如果要删除一个有内容的文件夹,只能先进入到这个文件夹,把里面的内容全部删除完毕,才能再次删除这个文件夹
- 简单来说,只能删除文件和空文件夹.
5.File类判断和获取功能
方法一:public boolean isDirectory()
测试此抽象路径名表示的File是否为目录
File file = new File("C:\\itheima\\a.txt");
boolean result1 = file.isFile();
boolean result2 = file.isDirectory();
System.out.println(result1);
System.out.println(result2);
方法二:public boolean isFile()
测试此抽象路径名表示的File是否为文件
File file = new File("C:\\itheima");
boolean result1 = file.isFile();
boolean result2 = file.isDirectory();
System.out.println(result1);
System.out.println(result2);
方法三:public boolean exists()
测试此抽象路径名表示的File是否存在
File file = new File("a.txt");
boolean result = file.exists();
System.out.println(result);
方法四:public String getName()
返回由此抽象路径名表示的文件或目录的名称
File file = new File("a.txt");
String name = file.getName();
System.out.println(name);
File file1 = new File("C:\\itheima");
String name2 = file1.getName();
System.out.println(name2);
注意:
- 1.如果调用者是文件,那么获取的是文件名和后缀名
- 2.如果调用者是一个文件夹,那么获取的是文件夹的名字
方法五:public File[] listFiles()
返回此抽象路径名表示的目录中的文件和目录的File对象数组。
进入文件夹,获取这个文件夹里面所有的文件和文件夹的File对象,并把这些File对象都放在一个数组中返回.包括隐藏文件和隐藏文件夹都可以获取.
File file = new File("D:\\aaa");
File[] files = file.listFiles();//返回值是一个File类型的数组
System.out.println(files.length);
for (File path : files) {
System.out.println(path);
}
注意:
- 1.当调用者是一个文件时,直接返回null
- 2,当调用者是一个空文件夹时,返回长度为0的数组
- 3.当调用者是一个有内容的文件夹时,进入文件夹,获取这个文件夹里面所有的文件和文件夹的File对象,并把这些File对象都放在一个数组中返回
- 4.当调用者是一个有权限才能进入的文件夹时,返回null