如何在 Java 中删除临时文件?

java 8object oriented programmingprogramming更新于 2025/4/26 21:52:17

java.io 包中的 File 类表示系统中的文件或目录(路径名)。此类提供各种方法来对文件/目录执行各种操作。

临时文件

在某些情况下(例如单元测试)或某些应用程序逻辑,您可能需要创建临时文件。

Java 中的 File 类提供了一个名为 createTempFile() 的方法。此方法接受两个 String 变量,分别表示临时文件的前缀(起始名称)和后缀(扩展名),以及一个 File 对象,表示需要在其中创建文件的目录(抽象路径)。

示例

以下 Java 示例在路径 D:/SampleDirectory 中创建一个名为 exampleTempFile5387153267019244721.txt

import java.io.File;
import java.io.IOException;
public class TempararyFiles {
   public static void main(String args[]) throws IOException {
      String prefix = "exampleTempFile";
      String suffix = ".txt";
      //为目录创建 File 对象
      File directoryPath = new File("D:/SampleDirectory");
      //创建临时文件
      File.createTempFile(prefix, suffix, directoryPath);
      System.out.println("Temp file created.........");
   }
}

输出

Temp file created.........

删除临时文件

您可以使用 File 类和 Files 类以两种方式删除临时文件。

使用 File 类

File 类提供了一个 delete() 方法,该方法可删除当前文件或目录,在临时文件上调用此方法。

示例

以下 Java 程序创建和删除临时文件。

import java.io.File;
import java.io.IOException;
public class TempararyFiles {
   public static void main(String args[]) throws IOException {
      String prefix = "exampleTempFile";
      String suffix = ".txt";
      //为目录创建 File 对象
      File directoryPath = new File("D:/SampleDirectory");
      //创建临时文件
      File tempFile = File.createTempFile(prefix, suffix, directoryPath);
      System.out.println("Temp file created: "+tempFile.getAbsolutePath());
      //删除文件
      tempFile.delete();
      System.out.println("Temp file deleted.........");
   }
}

输出

Temp file created: D:\SampleDirectory\exampleTempFile7179732984227266899.txt
Temp file deleted.........

使用 Files 类

与文件类一样,java.nio 包的 Files 类提供了 createTempFile() 方法,该方法接受两个表示前缀和后缀的 String 参数,并创建一个具有指定详细信息的临时文件。

此类的 delete() 方法接受路径对象并删除指定路径中的文件。

示例

以下 Java 程序使用 Files 类创建和删除临时文件。

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
public class TempararyFiles {
   public static void main(String args[]) throws IOException {
      String prefix = "exampleTempFile";
      String suffix = ".txt";
      //为目录创建 File 对象
      File directoryPath = new File("D:/SampleDirectory");
      //创建临时文件
      Path tempFilePath = Files.createTempFile(prefix, suffix);
      System.out.println("Temp file created: "+tempFilePath.toString());
      //删除文件
      Files.deleteIfExists(tempFilePath);
      System.out.println("Temp file deleted.........");
   }
}

输出

Temp file created: C:\Users\TUTORI~2\AppData\Local\Temp\exampleTempFile1192122004600989866.txt
Temp file deleted.........

相关文章