1、File类:
测试代码1:
package filetest.com;
import java.io.File;
import java.io.IOException;
public class FileOperations { public static void main(String[] args) { // 创建新文件File file = new File("example.txt"); try { if (file.createNewFile()) { System.out.println("文件 example.txt 创建成功"); } else { System.out.println("文件 example.txt 已存在"); } } catch (IOException e) { e.printStackTrace(); } // 创建单级目录的示例 File dir = new File("singleDir"); if (dir.mkdir()) { System.out.println("单级目录 singleDir 创建成功"); } else { System.out.println("单级目录 singleDir 已存在或无法创建"); } // 创建多级目录的示例 File dirs = new File("multiLevelDir/level2/level3"); if (dirs.mkdirs()) { System.out.println("多级目录 multiLevelDir/level2/level3 创建成功"); } else { System.out.println("多级目录 multiLevelDir/level2/level3 已存在或无法创建"); } }
}
运行结果如下:
测试代码2:
package filetest.com;
import java.io.File;public class FileOperationExample {public static void main(String[] args) {File file = new File("example");// 判断文件是否为目录和文件System.out.println("isDirectory: " + file.isDirectory());System.out.println("isFile: " + file.isFile());// 判断文件是否存在System.out.println("exists: " + file.exists());// 获取绝对路径,路径和文件名System.out.println("getAbsolutePath: " + file.getAbsolutePath());System.out.println("getPath: " + file.getPath());System.out.println("getName: " + file.getName());// 列出文件目录中的文件和目录if(file.isDirectory()){String[] fileList = file.list();if(fileList != null) {System.out.println("Files and directories in the directory:");for(String name : fileList){System.out.println(name);}} else {System.out.println("No files or directories in the directory.");}} else {System.out.println("The file is not a directory.");}// 删除文件或目录if(file.exists()){if(file.delete()){System.out.println("File deleted successfully.");} else {System.out.println("Failed to delete the file.");}} else {System.out.println("File does not exist.");}}
}
运行结果如下:
3、递归调用:
测试代码;
package filetest.com;
public class FactorialExample { public static void main(String[] args) { // 调用递归函数计算20的阶乘,并输出结果 System.out.println("100的阶乘是: " + factorial(20)); } // 递归函数计算阶乘 public static long factorial(int n) { // 递归的出口:当n为0或1时,返回1(因为0的阶乘和1的阶乘都定义为1) if (n <= 1) { return 1; } // 递归步骤:n的阶乘等于n乘以(n-1)的阶乘 return n * factorial(n - 1); }
}
运行结果如下:
4、递归遍历目录:
测试代码:
package filetest.com;
import java.io.File; public class DirectoryTraverser { public static void main(String[] args) { // 假设路径是硬编码的,但在实际应用中,你可能希望从命令行参数中获取它 String directoryPath = "E:\\javaproject"; File directory = new File(directoryPath); // 调用递归方法来遍历目录 traverseDirectory(directory); } /** * 递归遍历目录 * * @param directory 要遍历的目录 */ public static void traverseDirectory(File directory) { // 确保这是一个目录 if (directory.isDirectory()) { // 获取目录下的所有文件和子目录 File[] files = directory.listFiles(); if (files != null) { for (File file : files) { // 如果是文件,则打印其绝对路径 if (file.isFile()) { System.out.println(file.getAbsolutePath()); } else if (file.isDirectory()) { // 如果是目录,则递归调用此方法 traverseDirectory(file); } } } } else { // 如果给定的路径不是目录,可以抛出一个异常或打印一条消息 System.out.println(directory.getAbsolutePath() + " 不是一个目录"); } }
}
运行结果如下: