使用“自动删除临时文件”;新";Java文件API

使用“自动删除临时文件”;新";Java文件API,java,temporary-files,Java,Temporary Files,在使用旧的文件API编码多年之后,我终于准备好跳上整个路径/路径列车。在大多数情况下,这一切都进行得很顺利,但是,我在这个特殊的方面感到困惑:临时文件 有关的文件说: 与File.createTempFile方法一样,此方法只是临时文件工具的一部分。在用作工作文件的情况下,可以使用DELETE\u ON\u CLOSE选项打开生成的文件,以便在调用适当的CLOSE方法时删除该文件。或者,可以使用关闭挂钩或File.deleteOnExit()机制自动删除文件 我看不出应该在哪里指定DELETE\

在使用旧的
文件
API编码多年之后,我终于准备好跳上整个
路径
/
路径
列车。在大多数情况下,这一切都进行得很顺利,但是,我在这个特殊的方面感到困惑:临时文件

有关的文件说:

File.createTempFile
方法一样,此方法只是临时文件工具的一部分。在用作工作文件的情况下,可以使用
DELETE\u ON\u CLOSE
选项打开生成的文件,以便在调用适当的CLOSE方法时删除该文件。或者,可以使用关闭挂钩或
File.deleteOnExit()
机制自动删除文件

我看不出应该在哪里指定
DELETE\u ON\u CLOSE
选项。使用关机钩子非常不方便(除非我想错了)。为了避免同时使用
Path
对象和
File
对象,我正在为Path对象寻找一种类似于
File.deleteOnExit()
的解决方案,但显然不需要使用
Path.toFile().[…].toPath()
类调用模式


使用
java.nio.files
API实现“自毁”临时文件的正确方法是什么?

您在编写时设置了该选项,例如:

Path myTempFile = Files.createTempFile(...);
Files.write(myTempFile, ..., StandardOpenOption.DELETE_ON_CLOSE);

path.toFile().deleteOnExit()
?@assylias我已经想到了这一点,但我认为会有更好的方法。
toFile()
方法将转换为
文件
对象,该对象是旧API的一部分。这是我现在使用的解决方案,但正如我所说的,我正试图避免使用旧的API。文件并没有被弃用,这个解决方案没有任何问题!例如,要使用“打开”选项,可以使用其中一个文件.newXxx,例如newBufferedWriter。但这对于您的用例来说可能并不实用。虽然技术上是正确的,但您编写的代码示例在编写时是毫无用处的,因为它会在写入临时文件后立即删除临时文件。这就是说,
Files
类还提供了几种方法,
DELETE\u ON\u CLOSE
选项实际上对这些方法有意义,例如。