Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
setLastModified-Java_Java_Synchronization_Client Server_Simpledateformat - Fatal编程技术网

setLastModified-Java

setLastModified-Java,java,synchronization,client-server,simpledateformat,Java,Synchronization,Client Server,Simpledateformat,为拼写错误提前道歉 ** 项目简介 ** 我需要用Java创建一个系统,在系统中的所有计算机中同步一个文本文件。 为了做到这一点,我为每台计算机创建了一个服务器/客户机,该服务器/客户机链接到他的所有邻居,并使用lastModified方法检查谁是最受欢迎的文件 问题 一个被指责的“问题”是,当我从邻居那里得到文件并更新它时,我的lastModified现在变大了,因此他要求我提供文件——这样一个永无止境的循环,有人建议我用setLastModified解决它(我将邻居的lastModi

为拼写错误提前道歉

**

  • 项目简介
** 我需要用Java创建一个系统,在系统中的所有计算机中同步一个文本文件。 为了做到这一点,我为每台计算机创建了一个服务器/客户机,该服务器/客户机链接到他的所有邻居,并使用lastModified方法检查谁是最受欢迎的文件

  • 问题
一个被指责的“问题”是,当我从邻居那里得到文件并更新它时,我的lastModified现在变大了,因此他要求我提供文件——这样一个永无止境的循环,有人建议我用setLastModified解决它(我将邻居的lastModified时间改为我的),但它不起作用

我搜索了谷歌,它说setLastModified将修改时间设置为最接近的秒-这就是问题所在吗? 我如何修复它/他们的方法是否更准确地设置修改时间

 if (neighborLastMod  > file.lastModified()){
 getFileFromNeighbor(neighbor.getip(),neighbor.getport(),neighborLastMod);
 ....
 file.setLastModified(neighborLastMod); 

最后一次修改的时间戳的精度仅为1秒,因此精度不是问题

一个可能的问题是,当您从邻居处获取文件时,上次修改的时间戳被临时设置为当前时间。要解决此问题,您的
getFileFromNeighbor
应将文件从邻居保存到临时文件,设置临时文件的上次修改时间戳,然后执行原子移动或重命名,以便系统在任何时候都不会看到具有更高时间戳的文件