1、File类的概述
我们可以使用File类对文件和文件夹进行操作。
- 创建一个文件/文件夹
- 删除文件/文件夹
- 获取文件/文件夹
- 判断文件/文件夹是否存在
- 对文件夹进行遍历
- 获取文件的大小
File类是一个与系统无关的类,任何操作系统都有可以使用这个类种的方法。
重点:记住三个单词
- file:文件
- directory:文件夹
- path:路径(用于找到文件或者文件夹的路径)
2、File的静态成员变量
-
pathSeparator(String) 与系统有关的路径分隔符
在windows中,它是分号 ; 在Linux中,它是冒号 :
-
separator (String)文件名称分隔符
windows:反斜杠 \ Linux:斜杠 /
3、绝对路径与相对路径
- 绝对路径:完整的路径,以盘符开始的路径。
- 相对路径:简化的路径,相对是指相对于当前项目的根目录。
注意:
- 路径不区分大小写(疑问)艹,是真的,真的不区分大小写
4、构造方法
-
/* File(String pathname) 通过给定路径名字符串转换为抽象路径名来创建一个新File实例 参数: 路径可以是以文件结尾,也可以字符串结尾 路径可以是相对路径,也可以是绝对路径 可以是存在的,也可是不存在的 创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况 */ private static void show01() { File file = new File("D:\\百度云下载\\java攻城狮"); System.out.println(file);// D:\百度云下载\java攻城狮 说明File类重写了toString() }
-
/* File(String parent,String child) 根据parent路径名字符串和child路径名字符串来创建一个新File实例。 参数:把路径分成了两部分 String parent:父路径 String child:子路径 */ private static void show02(){ File file = new File("c:\\","zhangsan.txt"); System.out.println(file); // c:\\zhangsan.text }
-
/* File(File parent,String child) 根据parent File和child路径名字符串来创建一个新File实例。 参数:把路径分成了两部分 File parent:父路径 String child:子路径 */ private static void show02(){ File file = new File(parent,"zhangsan.txt"); //父路径是File类型 System.out.println(file); // c:\\zhangsan.text }
5、常用方法
5.1、获取
- String getAbsolutePath() :返回File的绝对路径字符串(管你是绝对还是相对统统返回绝对路径)
- String getPath() :返回你原来是啥的(绝对路径就返回绝对路径、相对路径就返回相对路径)
toString()调用的就是getPath()。 - String getName() :返回由此File表示的文件(文件)或目录(最后一个文件夹)的名称
- long length() :File的大小。(以Byte为单位)
注意:文件夹是没有大小概念的,不能获取文件夹的大小,如果路径不存在那么返回0。
5.2、判断
- boolean exists()
- boolean isDirectory()
- boolean isFile()
5.3、创建删除
-
boolean createNewFile()
当且仅当具有该名称的文件上不存在时,创建一个新的空文件。
-
boolean delete()
删除此File表示的文件或目录
/* public boolean delete():删除由此File类表示的文件或目录, 此方法可以删除构造方法给出的文件或文件夹 文件/文件夹删除成功:true 文件夹有内容,不会删除返回false,构造方法中的路径不存在也会返回false; 注意: delete()是直接在硬盘上删除,不走回收站,也就是说:不能撤销 */ private static void delete() { File file = new File("hhh"); System.out.println(file.delete()); //返回false,因为hhh文件夹中有内容 }
-
boolean mkdir()
创建此File表示的目录 -
boolean mkdirs()
创建由此File表示的目录,包括任何必须但不存在的父目录。
6、遍历(文件夹)
/*
File类遍历(文件夹目录功能)
- public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录
- public File() listFiles() :返回一个File数组,表示该File目录中的所有子文件或目录
注意:
list方法和listFiles方法遍历的是构造方法中给出的目录,
如果构造方法中给出的目录路径不存在,会抛出空指针异常
如果构造方法给出的路径不是一个目录,也会抛出空指针异常
*/
隐藏的文件也能获取到!🔏