File文件
file:文件
directory:文件夹/目录
path:路径
static String pathSeparator 与系统有关的路径分隔符,为了方便,可被表示为一个字符串
static char pathSeparatorChar 与系统有关的路径分隔符
static String separator 与系统有关的默认名称分隔符,为了方便,可被表示为一个字符串
static char separatorChar 与系统有关的默认名称分隔符
String pathSeparator = File.pathSeparator;
System.out.println(pathSeparator);//路径分隔符 Windows:分号; Linux:冒号:
String separator = File.separator;
System.out.println(separator);//文件名称分割符windows:反斜线\ linux:正斜杠/
File构造方法
1.File(String pathname):通过将给定路径名转换为抽象路径名来创建一个新的File实例
参数:
String pathname:字符串的路径名称
路径可以是以文件结尾,也可以是以文件夹结尾
可以是相对路径,也可以是绝对路径
路径可以是存在的,也可以是不存在的
创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况
2.File(String parent ,String child):根据paren路径名字符串和child创建一个新的File实例
参数:把路径分成两部分
String parent:父路径
String child :子路径
3.File(File parent,String child):根据paren路径名字符串和child创建一个新的File实例
参数:把路径分成两部分
String parent:父路径
String child :子路径
获取功能方法
1.public String getAbsolutePath():
返回此File的绝对路径字符串
2.public String getPath():
将此File转换为路径名字字符串,获取的就是构造方法传递路径的结尾部分(文件/文件夹)
3.public String getName():
返回由此File表示的文件或目录的名字
4.public long length():
返回由此File表示的文件的长度,
注意:
获取的是构造方法指定的文件的大小,以字节为单位
文件夹是没有大小的概念的,不能获取文件夹的大小,返回值为0
如果构造方法中给出的路径不存在,那么length方法返回0
5.long lastModified():
获取文件的最后修改时间
重命名方法:
renameTo(File dest)
调用者是当前的文件或者文件夹的路径对象
参数是变化之后的文件或者文件夹的路径对象
注意:
如果在统一文件夹下,修改路径,就是重命名
如果在不同文件夹下,修改路径,就是剪切
File类判断功能
public boolean exists():此File表示的文件或目录是否实际存在
public boolean isDirectory():此File表示的是否为目录
public boolean isFile():此File表示的是否为文件
创建册除功能的方法
1.public boolean createNewFiLe():
当且仅当具有该名称的文件尚不存在时,创建一个新的空文件
文件的路径和名称在构造方法中给出(构造方法的参数)
返回值:布尔值
true:文件不存在,创建文件,返回true
false:文件存在,不会创建,返回false
注意
1.此方法只能创建文件,不能创建文件夹
2创建文件的路径必须存在,否则会抛出异常
2.public boolean delete():
册除由此FiLe表示的文件或目录
此方法,可以删除构造方法中给出的文件或文件夹
返回值:
true:文件/文件夹删除成功,返回true
false:文件夹中有内容,不会删除返回false;构造方法中路径不存在false
注意:
delete()方法是直接在硬盘删除文件/文件夹,不走回收站
3.public booLean mkdir():
创建由此File表示的目录。创建单级目录
4.public boolean mkdirs():
创建由此File表示的目录,包括任何必需但不存在的父目录,多级目录
文件的路径和名称在构造方法中给出(构造方法的参数)
返回值:布尔值
true:文件夹不存在,创建文件夹,返回true
false:文件存在,不会创建,返回false;构造方法中给出的路径不存在返回false
注意:
1.此方法只能创建文件夹,不能创建文件
File类遍历目录功能
-public String[] list():返回一个String数组,表示File目录中的所有子文件或目录
-public File[] listFiles():返回一个File数组,表示该File目录中的所有子文件或目录
注意:
list方法和listFile方法遍历的是构造方法中给出的目录
如果构造方法中给出的目录的路径不存在,会抛出空指针异常
如果构造方法中给出的路径不是一个目录,也会抛出异常
private static void getAllFile(File dir) {
// System.out.println(dir);
File[] files = dir.listFiles();
for (File f : files) {
if (f.isDirectory()) {
getAllFile(f);
}else {
if (f.getName().endsWith(".txt")) {
System.out.println(f);
}
}
}
}
过滤器
在FiLe类中有两个和ListFile重裁的方法,方法的参数传递的就是过滤器
FiLe[] ListFiles(FileFilter filter)
java.io.FileFilter接口:用于抽象路径名(File对象)的过滤器
作用:用来过滤文件(File对象)
抽象方法:用来过滤文件的方法
boolean accept(File pathname):测试指定抽象路径名是否应该包含在某个路径名列表中。
参数:
File pathname:使用 Listfiles方法遍历目录,得到的每一个文件对象
Filel[] listFiles(FilenameFilter filter)
java.io.FilenameFilter接口:实现此接口的类实例可用于过滤器文件名
作用:用于过滤文件名称
抽象方法:用来过滤文件的方法
boolean accpet(File dir , String name):测试指定文件是否包含在某一文件列表中
参数:
File dir:构造方法中传递的被遍历的目录
String name:使用ListFiles方法遍历目录,获取每一个文件/文件夹的名称
注意:
两个过滤接口没有实现类,需要自己写实现类,重写过滤的方法accept,在方法中自己定义规则