File
import java.io.File;
/**
* Create by xiye on 2019/12/3 14:42
*/
public class Demo1_文件 {
/*
* File file = new File(String pathName);
* pathName可以是文件的路径字符串,也可以是文件夹路径字符串
* 当pathname为空字符串时,表示当前工程目录
*
* File file = new File(String basePath, String fileName);
* File file = new File(File parent, String child);
*
*
* */
public static void main(String[] args) {
fileMethod();
relativePathMethod();
}
private static void relativePathMethod() {
String separator = File.separator;
String path = "Day17" + separator + "src";
File file = new File(path);
System.out.println("文件构造器名称:" + file.getPath());
System.out.println("文件绝对名称:" + file.getAbsolutePath());
}
private static void fileMethod() {
String basePath = "D:\\file_test\\";
String fileName = "a.md";
File file = new File(basePath, fileName);
System.out.println(file);
System.out.println("文件/目录名称:" + file.getName());
}
}
文件/目录操作
import java.io.File;
import java.io.IOException;
/**
* Create by xiye on 2019/12/3 15:44
*/
public class Demo2_文件操作 {
public static void main(String[] args) {
File dir = new File("D:/file_test/");
// 是否存在文件/目录
if (dir.exists()) {
System.out.println("目录已存在,删除:" + dir.delete());
}
// mkdir()只能创建一级没有存在的目录,如需多级创建,使用mkdirs()
System.out.println("创建目录" + dir.getAbsolutePath() + ":" + dir.mkdir());
// 是一个目录
if (dir.isDirectory()) {
File file = new File(dir, "a.md");
// 存在文件
if (file.exists() && file.isFile()) {
System.out.println("删除文件" + file.getAbsolutePath() + ":" + file.delete());
}
try {
// 创建文件
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
遍历当前一级文件/目录
import java.io.File;
import java.util.Arrays;
/**
* Create by xiye on 2019/12/3 16:06
*/
public class Demo3_文件遍历 {
public static void main(String[] args) {
File file = new File("E:/");
// 只能获取当前同一级的文件/目录
File[] files = file.listFiles();
String[] dirs = file.list();
System.out.println(Arrays.toString(files));
System.out.println(Arrays.toString(dirs));
}
}
递归遍历多级文件
import java.io.File;
/**
* Create by xiye on 2019/12/3 16:36
*/
public class Demo4_递归 {
public static void main(String[] args) {
//System.out.println("10! = " + mul(10));
//System.out.println("10+ = " + add(10));
File file = new File(new File("").getAbsolutePath());
getFilePath(file);
}
private static void getFilePath(File file) {
// 设置文件过滤器
File[] files = file.listFiles(f -> f.getName().endsWith(".java") || f.isDirectory());
if (files != null) {
for (File f : files) {
if (f.isFile()) {
System.out.println("文件:" + f.getAbsolutePath());
} else {
// 是文件夹就递归
getFilePath(f);
}
}
}
}
public static int mul(int n) {
if (n == 1) {
return 1;
}
return n * mul(n - 1);
}
public static int add(int n) {
if (n == 1) {
return 1;
}
return n + add(n - 1);
}
}
本文深入讲解了Java中文件和目录的基本操作,包括文件的创建、删除、读取路径及遍历目录等。通过实例演示了如何使用File类进行文件管理,并介绍了递归遍历多级目录的方法。
2741

被折叠的 条评论
为什么被折叠?



