File 类,是将文件或文件夹封装成对象的类,是文件或者文件夹对象。New File对象时参数中是文件或者文件夹的字符串名称。File可以作为流对象的参数,同文件名字符串作为流对象参数一样。
File类的常用方法总结:
1,创建。
先new一个file对象,如File f=new File(“c:\\123.txt);然后用以下方法常见对象
boolean createNewFile():----文件
如果该文件不存在,会创建,如果已存在,则不创建。不会像输出流一样会覆盖。
boolean mkdir();-------目录
boolean mkdirs();------多级目录时用
2,删除。
boolean delete();
void deleteOnExit();
3,获取:
String getAbsolutePath();
String getPath();
String getParent();
String getName();
long length();
long lastModified();------最后修改时间
4,判断:
boolean exists();
boolean isFile();
boolean isDirectory();
Boolean isHidden();
File中还有几个重要方法:
String[] list()
------返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[] list(FilenameFilter filter)
-------返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles()
---------返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] listFiles(FileFilter filter)
---------返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FilenameFilter filter)
---------返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
static File[] listRoots()
---------列出可用的文件系统根。
FileFilter 和 FilenameFilter是两个过滤器接口,用于过滤文件对象和文件名字符串。如是否隐藏,是否以。Txt结尾deng。里面只有一个方法
boolean accept(File pathname)
boolean accept(File dir, String name)
返回true则list会列出此对象,否则过滤掉。借助这个规则,我们可以定义过滤器对象,根据需求实现这两个接口之一,覆盖accept方法,然后传给file的方法,即实现了过滤。如
class SuffixFilter implements FilenameFilter{
private String suffix;
SuffixFilter(String suffix){
this.suffix=suffix;
} //定义一个过滤器,过滤掉不是以给定的suffix结尾的文件
@Override
public boolean accept(File dir, String name) {
return name.endsWith("."+suffix);
}
}
class HiddenFilter implements FileFilter{ //定义一个过滤器,过滤掉隐藏文件
@Override
public boolean accept(File pathname) {
return !pathname.isHidden();
}
}