1.File类
1.概念:
文件或者目录(文件夹)都封装成File对象
构造方法:(windows中的路径或文件名不区分大小写)
File(String pathname)
File(File parent,String child)(父路径加上子路径)
2.File方法:
注意:很多方法有File和String两种返回类型
创建:
public boolean createNewFile() //创建文件 如果存在这样的文件,就不创建了
public boolean mkdir(): //创建文件夹 ,但是只能创建单层。**如果父目录不存在就不能创建**
public boolean mkdirs(): //创建文件夹,如果父文件夹不存在,会帮你**创建出来所有目录
删除:
public boolean delete():删除文件或者文件夹
获取:
String getName(): //返回路径中表示的文件或者文件夹名
File getAbsoluteFile() : //获取绝对路径,返回File对象
tring[] list(): //获取到File构造方法中封装的路径中的文件和文件夹名 (只是遍历一个目录)
File[] listFiles()://获取到,File构造方法中封装的路径中的文件和文件夹名 (只是遍历一个目录)
public File[] listFiles(FileFilter filter) //过滤一个目录下的指定扩展名的文件,或者包含某些关键字的文件夹
Long time = lastModified() //获取当前文件的最后一次修改时间
static File[] listRoots(): //列出可用的文件系统根
判断:
boolean exists(): 判断File构造方法中封装路径是否存在
boolean isDirectory(): 判断File构造方法中封装的路径是不是文件夹
boolean isFile(): 判断File构造方法中封装的路径是不是文件
2.文件过滤器
1.方法
public String[] list(FilenameFilter filter)
public File[] listFiles(FileFilter filter)
2.自定义过滤器
public class MyFilter implements FileFilter{
public boolean accept(File pathname) {
/*
* pathname 接受到的也是文件的全路径
* c:\\demo\\1.txt
* 对路径进行判断,如果是java文件,返回true,不是java文件,返回false
* 文件的后缀结尾是.java
*/
//String name = pathname.getName();
return pathname.getName().endsWith(".java");
}
}
}
main{
File file = new File("c:\\demo");
File[] fileArr = file.listFiles(new MyFilter());
for(File f : fileArr){
System.out.println(f);
}
}
3.原理分析
文件过滤器_原理分析
listFiles()遍历目录的同时,获取到了文件名全路径,调用过滤器的方法accept,将获取到的路径传递给accept方法的参数pathname
accept方法接收了参数pathname,参数是listFiles传递来的
在accept方法中,进行判断,如果这个路径是Java文件,返回true,走着返回false
一旦方法返回了true
listFiles将路径保存到File数组中