【发布时间】:2015-04-29 09:27:18
【问题描述】:
Java IO 有File.deleteOnExit(),这是一种在JVM 正常终止期间删除它所调用的文件的方法。我发现这对于清理临时文件非常有用,尤其是在单元测试期间。
但是,我在 Java NIO 的 Files 类中没有看到同名的方法。我知道我可以做到path.toFile().deleteOnExit(),但我想知道是否有使用 NIO 的替代方案。
还有其他选择吗?如果没有,为什么没有?
【问题讨论】:
-
蔚来版本会做什么不同或更好的? (除了从调用链中删除
.toFile()。) -
@Thunderforge DataInputStream.readLine() 实际上是 1998 年的
@Deprecated,它仍然存在。 “完全住在蔚来”有什么好处? -
@PeterLawrey 我知道 Java 往往不会删除他们不赞成使用的东西(这对我来说来自 Python 的感觉很奇怪),但他们总有一天会这样做。至于“完全生活在 NIO 中”,如果代码完全在 NIO 中而不是两者都使用,代码会更容易掌握(特别是对于可能已经开始使用 NIO 并且以前从未使用过 IO 的年轻开发人员)。不管你是否同意这个理由,我仍然想知道是否有替代方案。
-
@Thunderforge 我想说的是,在 Java 中,除非有令人信服的理由,否则它们会避免添加东西。他们添加的每一种方法都经过仔细考虑,如果它所做的一切与现有方法大致相同,我怀疑它不会发生。
-
“完全生活在 NIO 中”并不是什么好处,它只是一个任意的自我强加的约束。