Java 中如何删除文件

在Java中,你可以通过多种方法来删除文件。但是当你选择适合方法时,请确保处理可能发生的任何异常,比如文件不存在或者文件由于权限问题不能被删除等。

Files.delete

使用Files类的delete(Path path)方法(Java 7及以上):

public void deleteFile() {
    Path path = Paths.get("/Users/darcy/wdbyte/test.txt");
    try {
        Files.delete(path);
        System.out.println("文件删除成功");
    } catch (Exception e) {
        System.out.println("文件删除失败");
        e.printStackTrace();
    }
}

Files.deleteIfExists ⭐️

使用Files类的deleteIfExists(Path path)方法,与delete(Path path)类似,但当文件不存在时,不会抛出异常:

public void deleteIfExists() {
    Path path = Paths.get("/Users/darcy/wdbyte/test.txt");
    try {
        boolean deleted = Files.deleteIfExists(path);
        if (deleted) {
            System.out.println("文件删除成功");
        } else {
            System.out.println("文件不存在或者无法删除");
        }
    } catch (Exception e) {
        System.out.println("文件删除失败");
        e.printStackTrace();
    }
}

Files.delete

使用自 Java 1.0 开始就支持的 File类的delete()方法删除文件:

public void delete() {
    File file = new File("/Users/darcy/wdbyte/test.txt");
    if (file.delete()) {
        System.out.println("文件删除成功");
    } else {
        System.out.println("文件删除失败");
    }
    // 如果担心因为文件不存在而抛出异常,可以试下如下方法。
    // file.deleteOnExit();
}

FileUtils.forceDelete

也可以使用 Apache Commons IO 库中的文件操作方法,使用FileUtils.forceDelete(File file)来删除文件,这个方法的好处是它会处理所有底层的目录和文件删除细节。

引入依赖:

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.15.1</version>
</dependency>

删除文件:

public void forceDelete() {
    File file = new File("/Users/darcy/wdbyte/test.txt");
    try {
        FileUtils.forceDelete(file);
        System.out.println("文件删除成功");
    } catch (Exception e) {
        System.out.println("文件删除失败");
        e.printStackTrace();
    }
}

一如既往,文章中代码存放在 Github.com/niumoo/javaNotes.