如何删除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.........