- 主要用于文件和目录的创建、删除和查询等操作,Java 把电脑中的文件封装成了 File 类,在编写代码的时候我们可以使用 File 类来对文件或者文件夹进行操作。
分隔符
public class Main {
public static void main(String[] args) {
String pathSeparator = File.pathSeparator;
System.out.println(pathSeparator);
String separator = File.separator;
System.out.println(separator);
}
}
构造方法
public class Main {
public static void main(String[] args) {
File file = new File("C:\\Users\\17388\\Desktop\\1.txt");
System.out.println(file);
String parent = "C:\\Users\\17388\\Desktop";
String child = "1.txt";
File file1 = new File(parent, child);
System.out.println(file1);
}
}
常用方法
public class Main {
public static void main(String[] args) throws IOException {
File file = new File("1.txt");
System.out.println(file);
System.out.println(file.getAbsolutePath());
System.out.println(file.getPath());
System.out.println(file.getName());
System.out.println(file.length());
System.out.println(file.exists());
System.out.println(file.isFile());
System.out.println(file.isDirectory());
boolean flag = file.createNewFile();
System.out.println(flag);
if (file.exists()) {
System.out.println(file.isFile());
System.out.println(file.isDirectory());
}
File file1 = new File("1");
boolean flag1 = file1.mkdir();
System.out.println(flag1);
File file2 = new File("11\\111");
boolean flag2 = file2.mkdirs();
System.out.println(flag2);
System.out.println(file.delete());
System.out.println(file1.delete());
System.out.println(file2.delete());
}
}
遍历目录
public class Main {
public static void main(String[] args) throws IOException {
File file = new File("D:\\Computer\\Project\\java");
String[] list = file.list();
for (String s : list) {
System.out.println(s);
}
File[] files = file.listFiles();
for (File file1 : files) {
System.out.println(file1);
}
}
}
递归读取目录及其子目录文件
public class Main {
public static void main(String[] args) throws IOException {
File file = new File("D:\\Computer\\Project\\java");
printAllFile(file);
}
private static void printAllFile(File file) {
System.out.println(file);
File[] files = file.listFiles();
for (File file1 : files) {
if(file1.isFile()) {
System.out.println(file1);
} else {
printAllFile(file1);
}
}
}
}
递归查找指定条件文件
public class Main {
public static void main(String[] args) throws IOException {
File file = new File("D:\\Computer\\Project\\java");
printAllFile(file);
}
private static void printAllFile(File file) {
File[] files = file.listFiles();
for (File file1 : files) {
if(file1.isFile()) {
if(file1.getName().toLowerCase().endsWith(".iml")) {
System.out.println(file1);
}
} else {
printAllFile(file1);
}
}
}
}
文件过滤器
- 使用 FileFilter 过滤器接口,在遍历目录的同时,调用其中的 accept 方法将其中不符合要求的文件过滤掉,然后在进行判断输入即可。(面向接口编程)
public class Main {
public static void main(String[] args) throws IOException {
File file = new File("D:\\Computer\\Project\\java");
printAllFile(file);
}
private static void printAllFile(File file) {
File[] files1 = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir, name).isDirectory() ||
name.toLowerCase().endsWith(".java");
}
});
for (File file1 : files1) {
if (file1.isDirectory()) {
printAllFile(file1);
} else {
System.out.println(file1);
}
}
}
}