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

标签 java file unix io constraints

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

问题在于该工具无法读取信息(读取了文件的一半)并导致 UI 上的数据丢失。但问题并不一致。这种情况大约只发生二十分之一。休息一下,它读起来总是很好。

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

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

我的工具可能有错误吗?或者是该工具遇到的环境问题。

我应该尝试

try {

// my code 

} catch(Throwable t) {

   t.printStackTrace();  

} 

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

最佳答案

Windows 倾向于锁定文件,因此您在写入文件时不太可能读取它。 Linux 认为您知道自己在做什么,并且默认情况下不锁定。这意味着您可以在完成之前查看文件。这是文件的常见问题,因为它们不是设计为消息传递协议(protocol)的,因此您必须想出一些启发式方法来解决此缺陷。更好的方法是不要使用文件在进程之间进行通信,否则您必须非常了解它的局限性。

关于Windows/Unix 服务器上的 JAVa IO 限制导致应用程序出现未知问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18033202/

相关文章:

java - java实现排序和未排序链表的合并

java - 如何在libGDX中以相反的方式射击子弹

java - java选项 -XX :+UseCondCardMark work in jdk17? 是否

android - 使用 Apache FileUtils 复制文件时如何显示进度条?安卓

c++ - 将有限行数写入文本文件的算法

perl - 使用 unix ksh shell 脚本或 perl 脚本监视文件夹中的新文件并触发 perl 脚本

java - 什么是非法反射访问?

file - Unix命令将文件的最后一行复制到另一个文件

linux - 如何在 linux 中的下一个命令中引用一个命令的结果?

linux - jboss服务器未连接