在 Java 中删除文件

Rupam Yadav 2023年10月12日
  1. 在 Java 中使用 Files.delete() 删除文件
  2. 在 Java 中使用 Files.deleteIfExists() 删除文件
在 Java 中删除文件

Java NIO 包是在 Java 7 版本中引入的。它提供名为 Files 的实用 API 来操作文件和方向。

我们将使用这个包来删除文件。

在 Java 中使用 Files.delete() 删除文件

java.nio.file 包包含 Java Files 类,该类具有许多静态方法来对文件、目录和其他类型执行操作。

我们使用 Path 接口 java.nio.files.Path 来创建 Path 实例。Path 实例是使用 Paths 类 (java.nio.file.Paths) 中的静态方法 get() 创建的。

因此,调用 Paths.get() 提供了一个 Path 实例。此实例表示用于在文件系统中定位文件的对象。

我们将字符串格式的绝对路径作为参数传递给静态方法 get()。代码中的绝对路径是/Users/Test/test1.txt。get() 方法将字符串序列转换为路径字符串。

静态方法 delete() 采用 Path 实例并删除指定的路径文件。如果指定路径中不存在该文件,此方法将抛出 NoSuchFileException

如果文件是非空目录且无法删除,也会抛出 DirectoryNotEmptyException。因此,我们将代码放在 try-catch 块中。

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileTest {
  public static void main(String[] args) {
    String file_name = "/Users/Test/test1.txt";
    Path path = Paths.get(file_name);
    try {
      Files.delete(path);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

在 Java 中使用 Files.deleteIfExists() 删除文件

java.nio.file 包中的 Files 类还包括方法 deleteIfExists(),如果该文件存在于指定路径中,该方法将删除该文件。此方法返回一个布尔值。

如果返回值为 true,则删除该文件,因为它存在于路径中。如果该位置不存在文件,则此方法将返回 false,因为无法将其删除。

我们将布尔值存储在变量结果中并相应地打印输出。如上一节所述,我们将代码放在 try-catch 块中,因为此操作可能会抛出 IOException

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

class FileTest {
  public static void main(String[] args) {
    String file_name = "/Users/Test/test.txt";
    Path path = Paths.get(file_name);
    try {
      boolean result = Files.deleteIfExists(path);
      if (result) {
        System.out.println("File is deleted!");
      } else {
        System.out.println("Sorry, could not delete the file.");
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

输出:

File is deleted!
作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相关文章 - Java File