Java 我们是否需要关闭FileInput/OutputStream来删除文件?

Java 我们是否需要关闭FileInput/OutputStream来删除文件?,java,file-io,Java,File Io,在我正在开发的应用程序中,我们必须处理临时文件。由于常见的编程错误,文件可能无法正确处理(当然,在我们注意到并修复它之前!)。 我想写一个简单的模块,将垃圾收集文件 我想知道我是否可以总是删除这些文件,不管上面有一个开放的流 我尝试过它(VM1.6,linux),它可以工作,但是因为我找不到一个规范,所以我对实现它犹豫不决 注1:我们讨论的是单个流程应用程序 注2:我主要对inputStream感兴趣,如果它有区别的话。AFAIK,在Linux上你可以,在Windows上你不能 正如@EJP所指

在我正在开发的应用程序中,我们必须处理临时文件。由于常见的编程错误,文件可能无法正确处理(当然,在我们注意到并修复它之前!)。 我想写一个简单的模块,将垃圾收集文件

我想知道我是否可以总是删除这些文件,不管上面有一个开放的流

我尝试过它(VM1.6,linux),它可以工作,但是因为我找不到一个规范,所以我对实现它犹豫不决

注1:我们讨论的是单个流程应用程序


注2:我主要对inputStream感兴趣,如果它有区别的话。

AFAIK,在Linux上你可以,在Windows上你不能


正如@EJP所指出的,你可以让自己陷入一个无休止的混乱之中,从而找到解决办法。如果你打算解决一个bug,那只是因为你真的别无选择。我在变通方法中看到的一件事是,你不仅会弄得一团糟,而且会使以后修复bug变得更加困难。不止一次,我看到一个修复程序破坏了一个解决方案,导致程序中断。

AFAIK,在Linux上你可以,在Windows上你不能。更重要的是不要犯“常见的编程错误”,或者找出并修复它们。不要编写代码来补偿糟糕的编程。这是一种无休止的倒退。“你的保管权是多少?”@PeterLawre请回答这个问题!