要删除Java中的文件,可以使用File.delete()
方法。这个方法可以从指定路径删除文件或目录。
File.delete()
方法的语法
File file = new File("C:/java/hello.txt");
if (file.exists()) {
file.delete();
}
从当前目录删除文件
下面是一个示例,演示了如何使用File.delete()
方法来删除当前目录下的现有文件:
package com.tutorialspoint;
import java.io.*;
public class FileTest {
public static void main(String args[]) throws IOException {
BufferedWriter out = new BufferedWriter(new FileWriter("test.txt"));
out.write("测试数据");
out.close();
File file = new File("test.txt");
if (file.exists()) {
boolean success = file.delete();
if (success) {
System.out.println("文件已成功删除。");
} else {
System.out.println("文件删除失败。");
}
} else {
System.out.println("文件不存在。");
}
}
}
输出
文件已成功删除。
删除不存在的文件
下面是一个示例,演示了尝试删除当前目录下不存在的文件时调用File.delete()
方法的情况。因为文件不存在,所以返回false
。
package com.tutorialspoint;
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String args[]) throws IOException {
File file = new File("test1.txt");
boolean success = file.delete();
if (success) {
System.out.println("文件已成功删除。");
} else {
System.out.println("文件删除失败。");
}
}
}
输出
文件删除失败。
删除给定目录下的所有文件
下面是一个示例,演示了如何递归地删除给定目录下的所有文件:
package com.tutorialspoint;
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void deleteFiles(File dirPath) {
File[] filesList = dirPath.listFiles();
if (filesList == null) return;
for (File file : filesList) {
if (file.isFile()) {
file.delete();
} else if (file.isDirectory()) {
deleteFiles(file);
}
}
}
public static void main(String args[]) throws IOException {
File file = new File("D:\\test");
deleteFiles(file);
System.out.println("文件已删除。");
}
}
输出
文件已删除。
请注意,listFiles()
方法可能返回null
,如果目录不存在或者由于某种原因无法访问目录列表。因此,在遍历文件列表前检查listFiles()
的结果是否为null
是好的做法。