微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Java中释放由应用程序locking的文件

问题如何在Java中读取/写入文件我已经问过如何用Java读写文件,因为我认为典型的FileReader , BufferedReader操作是保留在我的文件中的。

现在我确信其他操作是负责这个(例如一个Runtime.getRuntime().exec(<CommandLine>).waitFor() )。

实际上,我并不关心哪个命令完全是负责保存文件,我只想让我的应用程序放弃它。

这可能吗? 有没有像这样的this.Release_File(File "<Filename>"); 在Java中?

将命令添加到cmd历史logging

7ziprecursion归档文件夹中的文件

如何添加删除系统的环境variables“path”?

如何使用JpegTranrecursion处理所有图像,覆盖它们,在Windows目录中?

在特定的terminal中通过Perl运行一个shell命令

…(经过一段时间和实验)

同时我还有点进一步:我添加了Thread.sleep(5000); 这是在做这个工作,所以如果我稍微等一下,一切正常,所以真正的问题是什么?

我正在启动一个命令行,就像这样:

cmd /c <program>.exe >> <output_File>.log

我这样做(在我的Java代码中),如下所示:

exitcode = Runtime.getRuntime().exec(cmdline).waitFor();

问题似乎如下:命令行有一个redirect,将其输出保存到.log日志文件。 这个写入是立即开始的,但是当“cmd / c”完成时,操作系统(这种情况下的Windows 7)还没有完成对其input/输出缓冲区的刷新。 因此, Runtime.getRuntime().exec(cmdline)已经完成,但底层的缓冲区刷新仍然很忙。

如您所见,我已经使用cmd /c来告诉Windows在完成命令后终止命令提示符,但我真正需要的是类似于:

cmd /Completely_Finished <program>.exe >> <output_File>.log

操作系统已经准备好所有与.exe相关的进程,这是Completely_Finished意思。 有人知道这是否存在?

Ps我已经有一个关于这个问题的解决方法:在文件读取周围使用while循环,直到不会抛出exception。 虽然工作,我觉得这个工作非常肮脏,并没有解决问题的根本原因。

提前致谢

CMD全屏Visual Studio

Windows命令行/ shell – 丢弃UTF-8 BOM

TShark输出redirect

l将目录中的所有文件加上目录中的所有文件

Shell:列出按文件计数sorting的目录(包括在子目录中)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐