JavaIO流之File类
文章目录
- JavaIO流之File类
- 1.File类
- 1.1常量字段
- 1.1构造方法
- 1.2普通方法
- 1.3File类的应用
- 2.文件过滤器
- 2.1自定义文件过滤器
- 2.2File类文件过滤方法
- 3.删除文件夹的方法
- 文件:计算机文件是以计算机硬盘为载体存储在计算机上的数据集合。
- 文件夹:文件夹是用来组织和管理磁盘文件的一种数据结构。
1.File类
1.1常量字段
static String separator 获取当前操作系统的路径分隔符
1.1构造方法
File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
1.2普通方法
boolean createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
boolean mkdir() 创建此抽象路径名指定的目录。 (创建文件夹,如果存在,就不创建了,并返回false)
boolean mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 (创建多重目录)
boolean delete() 删除此抽象路径名表示的文件或目录。
boolean renameTo(File dest) 重新命名此抽象路径名表示的文件。
void deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
File getAbsoluteFile() 返回此抽象路径名的绝对路径名形式。
String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。 (获取绝对路径)
String getPath() 将此抽象路径名转换为一个路径名字符串。 (获取相对路径)
String getName() 返回由此抽象路径名表示的文件或目录的名称。
long length() 返回由此抽象路径名表示的文件的长度,即文件大小,字节数。
String getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
File getParentFile() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
long lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间,单位是毫秒值。
String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[] list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FilenameFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
static File[] listRoots() 列出可用的文件系统根。
boolean exists() 测试此抽象路径名表示的文件或目录是否存在。
boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。
boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。
boolean isAbsolute() 测试此抽象路径名是否为绝对路径名。
1.3File类的应用
- 题目:删除一个指定的文件目录:使用递归方法,先删除该文件夹下的所有文件及文件夹,再删除本目录。
static void deleteFolder(File file){
if(file.exists()){
if(file.isFile()){
file.delete();
}else{
File[] files = file.listFiles();
for (File f : files) {
deleteFolder(f);
}
file.delete();
}
}
}
2.文件过滤器
2.1自定义文件过滤器
public static File[] fileFilter(File file,String suffix){
File[] files = file.listFiles();
List<File> list = new ArrayList<>();
for (File f : files) {
if(f.getName().endsWith(suffix))
list.add(f);
}
return list.toArray(new File[list.size()]);
}
2.2File类文件过滤方法
File file = new File("E:/test");
File[] files = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith("txt");
}
});
for (File fs : files) {
System.out.println(fs);
}
File file = new File("E:/test");
File[] files = file.listFiles((File dir,String name)->name.endsWith("txt"));
List list = Arrays.asList(files);
list.forEach(System.out::println);
3.删除文件夹的方法
static void deleteFolder(File file){
if(file.exists()){
if(file.isFile()){
file.delete();
}else{
File[] files = file.listFiles();
for (File f : files) {
deleteFolder(f);
}
file.delete();
}
}
}