gpt4 book ai didi

java - setLastModified - Java

转载 作者:行者123 更新时间:2023-12-01 04:28:08 25 4
gpt4 key购买 nike

提前对拼写错误表示歉意

**

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

  • 问题

一个“问题”是当我从邻居那里获取文件并更新它时,我的lastModified现在更大,因此他向我请求文件 - 等等,一个永无休止的循环,有人建议我用 setLastModified 解决这个问题(我正在将邻居的 lastModified 时间更改为我的),但它不起作用?!

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

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

最佳答案

无论如何,最后修改的时间戳最多只能精确到一秒,因此准确性不是问题。

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

关于java - setLastModified - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18287598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com