setLastModified-Java
为拼写错误提前道歉 **setLastModified-Java,java,synchronization,client-server,simpledateformat,Java,Synchronization,Client Server,Simpledateformat,为拼写错误提前道歉 ** 项目简介 ** 我需要用Java创建一个系统,在系统中的所有计算机中同步一个文本文件。 为了做到这一点,我为每台计算机创建了一个服务器/客户机,该服务器/客户机链接到他的所有邻居,并使用lastModified方法检查谁是最受欢迎的文件 问题 一个被指责的“问题”是,当我从邻居那里得到文件并更新它时,我的lastModified现在变大了,因此他要求我提供文件——这样一个永无止境的循环,有人建议我用setLastModified解决它(我将邻居的lastModi
- 项目简介
- 问题
if (neighborLastMod > file.lastModified()){
getFileFromNeighbor(neighbor.getip(),neighbor.getport(),neighborLastMod);
....
file.setLastModified(neighborLastMod);
最后一次修改的时间戳的精度仅为1秒,因此精度不是问题 一个可能的问题是,当您从邻居处获取文件时,上次修改的时间戳被临时设置为当前时间。要解决此问题,您的
getFileFromNeighbor
应将文件从邻居保存到临时文件,设置临时文件的上次修改时间戳,然后执行原子移动或重命名,以便系统在任何时候都不会看到具有更高时间戳的文件