Windows/UnIX服务器上的JAVa IO限制导致应用程序未知问题

Windows/UnIX服务器上的JAVa IO限制导致应用程序未知问题,java,file,unix,io,constraints,Java,File,Unix,Io,Constraints,我在java(J2EE应用程序)中面临一个非常奇怪的问题。我有一个应用程序,它从放置在本地机器/服务器上某个位置的客户配置文件中读取数据,通过JavaAPI读取数据,并将其显示在工具的UI上。稍后,通过UI,可以更改数据,并通过工具通过JavaAPI将数据写回文件 问题是该工具无法读取信息(读取文件的一半),并导致UI上的数据丢失。但问题并非始终如一。它只发生大约20次中的1次。休息吧,它总是读得很好 我无法在WINDOwS计算机上重现该问题。但在生产服务器中(在UNIX环境中)可以看到 请建议

我在java(J2EE应用程序)中面临一个非常奇怪的问题。我有一个应用程序,它从放置在本地机器/服务器上某个位置的客户配置文件中读取数据,通过JavaAPI读取数据,并将其显示在工具的UI上。稍后,通过UI,可以更改数据,并通过工具通过JavaAPI将数据写回文件

问题是该工具无法读取信息(读取文件的一半),并导致UI上的数据丢失。但问题并非始终如一。它只发生大约20次中的1次。休息吧,它总是读得很好

我无法在WINDOwS计算机上重现该问题。但在生产服务器中(在UNIX环境中)可以看到

请建议我需要检查的内容。UNIX中是否存在任何与权限相关的问题

我的工具会有Bug吗?或者是该工具所面临的环境问题

我应该试试吗

try {

// my code 

} catch(Throwable t) {

   t.printStackTrace();  

} 

要调试环境中是否存在问题?

Windows倾向于锁定文件,以便在写入文件时不太可能读取文件。Linux采用您知道自己在做什么的视图,默认情况下不会锁定。这意味着您可以在完成之前查看文件。这是文件的一个常见问题,因为它们不是作为消息传递协议设计的,所以您必须想出一些启发性的方法来处理这一缺陷。更好的方法是不使用文件在进程之间进行通信,或者您必须非常清楚它的局限性。

谢谢Peter Lawrey,但您是否认为它也可能是一个Bug,这是一个令人困扰的问题(我的应用程序被认为是一个困扰的应用程序,因为这个原因)。我不能再复制它了。如果我们不能再复制,我们是否可以断定它是环境特定的。?Windows和Linux访问程序的方式不同。因此,我使用Linux进行开发,并测试目标系统是否为Linux。事实上,我建议您使用Centos,而不是unubtu,如果这是您计划使用的。