File类:表示一个文件或者文件夹(目录)的路径
路径分为相对路径和绝对路径
绝对路径:从盘符开始的路径
举例:"C:\\IdeaProjects\\javajob\\day08-code\\a.bmp"
相对路径:相对于项目的根目录(省略了项目的根目录)
//假设项目的根目录为:"C:\\IdeaProjects\\javajob"
举例:"day08-code\\a.bmp"
构造方法
public File(String filename)
通过文件或者文件夹的路径,创建File对象。(ps:既可以是相对路径也可以是绝对路径)
public File(String parent,String child)
通过父路径和子路径创建File对象。
public File(File parent,String child)
通过父路径和子路径创建File对象。
File类的常用方法
获取功能
String getAbsolutePath()
获取文件/文件夹的绝对路径
String getPath()
获取File对象封装路径
String toString()
获取File对象封装路径
String getName()
获取文件/文件夹的名称
String getParent()
获取文件/文件夹的父目录
long length()
只能获取文件的大小,不能获取文件夹的大小
判断功能
1. File对象封装的路径有可能是【文件的路径】也有可能是【文件夹的路径】
2. File对象封装的路径有【可能存在】也有【可能不存在】
注意:路径存在与否、文件夹还是文件用眼睛看不出来。可以用下面的方法来判断
boolean exists()
判断文件、文件夹是否存在
boolean isFile()
判断是否为文件的路径
boolean isDirectory()
判断是否为文件夹的路径
创建删除
boolean createNewFile()
创建File对象指定路径的文件
boolean mkdir()
创建File对象指定路径的文件夹(单级单级文件)
boolean mkdirs()
创建File对象指定路径的文件夹(单级多级文件)
boolean delete()
删除文件获取文件夹
注意:只能删除空文件夹
目录遍历的方法
String[] list()
获取File对象指向目录下面的子文件和子目录,返回值为String[]
File[] listFiles()
获取File对象指向目录下面的子文件和子目录,返回值为File[]
File类:表示一个文件或者文件夹(目录)的路径
路径分为相对路径和绝对路径
绝对路径:从盘符开始的路径
举例:"C:\\IdeaProjects\\javajob\\day08-code\\a.bmp"
相对路径:相对于项目的根目录(省略了项目的根目录)
//假设项目的根目录为:"C:\\IdeaProjects\\javajob"
举例:"day08-code\\a.bmp"
构造方法
public File(String filename)
通过文件或者文件夹的路径,创建File对象。(ps:既可以是相对路径也可以是绝对路径)
public File(String parent,String child)
通过父路径和子路径创建File对象。
public File(File parent,String child)
通过父路径和子路径创建File对象。
File类的常用方法
获取功能
String getAbsolutePath()
获取文件/文件夹的绝对路径
String getPath()
获取File对象封装路径
String toString()
获取File对象封装路径
String getName()
获取文件/文件夹的名称
String getParent()
获取文件/文件夹的父目录
long length()
只能获取文件的大小,不能获取文件夹的大小
判断功能
1. File对象封装的路径有可能是【文件的路径】也有可能是【文件夹的路径】
2. File对象封装的路径有【可能存在】也有【可能不存在】
注意:路径存在与否、文件夹还是文件用眼睛看不出来。可以用下面的方法来判断
boolean exists()
判断文件、文件夹是否存在
boolean isFile()
判断是否为文件的路径
boolean isDirectory()
判断是否为文件夹的路径
创建删除
boolean createNewFile()
创建File对象指定路径的文件
boolean mkdir()
创建File对象指定路径的文件夹(单级单级文件)
boolean mkdirs()
创建File对象指定路径的文件夹(单级多级文件)
boolean delete()
删除文件获取文件夹
注意:只能删除空文件夹
目录遍历的方法
String[] list()
获取File对象指向目录下面的子文件和子目录,返回值为String[]
File[] listFiles()
获取File对象指向目录下面的子文件和子目录,返回值为File[]
总结:
一、File类【重点】
用来表示文件或者文件夹的路径
路径分为两种
绝对路径:从盘符开始的路径
相对路径:相对项目的根目录(根目录可以省略,直接写根目录之后的路径)
常用方法
1. 获取方法
String getAbsolutePath() 获取文件/文件夹的绝对路径
String getPath() 获取File对象封装的路径
String getParent() 获取文件/文件夹的父路径
long length() 获取文件的大小(字节数),不能获取文件夹的大小
String getName() 获取文件/文件夹的名称
2. 判断方法
boolean exists() 判断文件/文件夹是否存在
boolean isFile() 判断是否为文件
boolean isDirectory() 判断是否为文件夹
3. 创建和删除
boolean createNewFile() 创建文件
boolean mkdir() 创建单级文件夹
boolean mkdirs()创建多级文件夹
二、递归调用【重点】
递归:就是方法自己调用自己
注意事项:
1.递归一定要有出口(结束条件)
StackOverflowError
2.递归的次数过多也不可以
StackOverflowError
文件夹的遍历
三、过滤器【了解】
在调用listFiels(FileFilter filter)时,传递一个FileFilter(过滤器)的实现类对象,由accept(File pathname)提供过滤的规则
//使用匿名内部类实现FileFilter的accept方法,提供过滤的规则
File[] files = dir.listFiles(new FileFilter(){
public void accept(File pathname){
if (pathname.isFile()) {
if (pathname.getName().endsWith(".java")) {
return true;
}
}
return false;
}
});
//使用Lambda表示FileFilter的实例实现
File[] files = dir.listFiles((File pathname)->{
if (pathname.isFile()) {
if (pathname.getName().endsWith(".java")) {
return true;
}
}
return false;
}
);