File
此类的定义如下:
-
public class File extends Object implements Serializable, Comparable<File>
-
文件和目录路径名的抽象表示。
常见字段:
变量和类型 | 字段 | 描述 |
---|---|---|
static String | pathSeparator | 与系统相关的路径分隔符,为方便起见,表示为字符串。 |
static char | pathSeparatorChar | 与系统相关的路径分隔符。 |
static String | separator | 系统相关的默认名称分隔符,为方便起见,表示为字符串。 |
static char | separatorChar | 系统相关的默认名称分隔符。 |
构造方法
构造器 | 描述 |
---|---|
File(File parent, String child) | 从父抽象路径名和子路径名字符串创建新的 File 实例 |
File(String pathname) | 通过将给定的路径名字符串转换为抽象路径名来创建新的 File 实例 |
File(String parent, String child) | 从父路径名字符串和子路径名字符串创建新的 File 实例 |
常用方法
变量和类型 | 方法 | 描述 |
---|---|---|
boolean | createNewFile() | 当且仅当具有此名称的文件尚不存在时, 以原子方式创建由此抽象路径名命名的新空文件。 |
static File | createTempFile(String prefix, String suffix) | 在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。 |
static File | createTempFile(String prefix, String suffix, File directory) | 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
boolean | exists() | 测试此抽象路径名表示的文件或目录是否存在 |
String | getAbsolutePath() | 返回此抽象路径名的绝对路径名字符串。 |
String | getName() | 返回此抽象路径名表示的文件或目录的名称。 |
boolean | isDirectory() | 测试此抽象路径名表示的文件是否为目录 |
boolean | isFile() | 测试此抽象路径名表示的文件是否为普通文件。`` |
String[] | list(FilenameFilter filter) | 返回一个字符串数组,用于命名由此抽象路径名表示的目录中的文件和目录,以满足指定的过滤器。 |
String[] | list() | 返回一个字符串数组,用于命名此抽象路径名表示的目录中的文件和目录。 |
File[] | listFiles() | 返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。 |
File[] | listFiles(FileFilter filter) | 返回一个抽象路径名数组,表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
boolean | mkdir() | 创建此抽象路径名指定的目录。 |
boolean | mkdirs() | 创建此抽象路径名指定的目录,包括任何必需但不存在的父目录。 |
文件遍历Demo
public class listFileDemo {
public static void main(String[] args) {
File file = new File("e://huanglin");//遍历这个目录下的md文件
list(file);
}
public static void list(File file){
if (file.isDirectory() && file.length() > 0) {
// 当是文件目录时,且变为空 就 遍历
File[] list = file.listFiles();
for (File f : list) {
if (f.isFile() && f.toString().endsWith(".md")){
// 如果是md文件,则输出
System.out.println(f.getAbsolutePath());
} else {
list(f);
}
}
}
}
}
允许结果:
e:\huanglin\apache-zookeeper-3.6.0-bin\README.md
e:\huanglin\apache-zookeeper-3.6.0-bin\README_packaging.md
e:\huanglin\mybatis笔记.md
e:\huanglin\springboot\springboot-04-data\HELP.md
e:\huanglin\springboot\springboot-04-data\README.md
e:\huanglin\springboot\springboot-05-security\README.md
e:\huanglin\Spring学习笔记.md
e:\huanglin\webRTC\webrtc.md
e:\huanglin\Web笔记.md
FileFilter 接口
接口定义:
-
@FunctionalInterface public interface FileFilter
-
可以将此接口的实例传递给
File
类的listFiles(FileFilter)
方法。
方法:
变量和类型 | 方法 | 描述 |
---|---|---|
boolean | accept(File pathname) | 指定的抽象路径名是否应包含在路径名列表中 |
用文件过滤器FileFilter实现文件的遍历
public class listFileDemo {
public static void main(String[] args) {
File file = new File("e://huanglin");
list(file);
}
public static void list(File file){
if (file.isDirectory() && file.length() > 0) {
File[] list = file.listFiles(new FileFilter() {
@Override
public boolean accept(File f) {
if (f.isDirectory() || f.isFile() && f.toString().endsWith(".md")) return true;
// 文件是文件夹 或者 是带有.md结尾的文件
return false;
}
});
for ( File file1 : list) {
if (file1.isFile()) System.out.println(file1);
else list(file1);
}
}
}
}
允许结果:
e:\huanglin\apache-zookeeper-3.6.0-bin\README.md
e:\huanglin\apache-zookeeper-3.6.0-bin\README_packaging.md
e:\huanglin\mybatis笔记.md
e:\huanglin\springboot\springboot-04-data\HELP.md
e:\huanglin\springboot\springboot-04-data\README.md
e:\huanglin\springboot\springboot-05-security\README.md
e:\huanglin\Spring学习笔记.md
e:\huanglin\webRTC\webrtc.md
e:\huanglin\Web笔记.md