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

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 directoryPath = new File("D:/SampleDirectory");
      //创建一个临时文件
      File.createTempFile(prefix, suffix, directoryPath);
      System.out.println("Temp file created.........");
   }
}

输出结果

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

删除临时文件

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

使用文件类

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类

就像File类一样,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.........