我正在编写一个 Java 应用程序,它应该(除其他外)生成一个整数序列,从给定的数字开始(例如 900、901、902、903,...... - 900 作为参数给出)。
- 当应用程序关闭然后重新启动时,当前序列值应该保持不变。
- 当应用程序的多个实例同时运行时,它们应该共享相同的序列(例如,当单独运行时,所有实例生成的序列的并集应该与单个实例生成的序列相同)。
- 管理员应该能够关闭应用程序并手动重置当前序列值。
- 如果应用程序崩溃,该文件应该始终可供其他实例访问,以便它们可以继续工作。
决定应用程序将使用仅包含当前号码的纯文本文件。当应用程序启动时,它会检查文件是否已经存在,如果不存在,则创建它并将初始编号写入其中。每次应用程序要生成一个新数字时,它应该读取文件中的当前值,将其用作当前序列值,然后增加文件中的数字。
我现在想,如何原子地做这两件事(关于同一应用程序的其他运行实例):
- 检查文件是否存在,如果不存在,则创建它并在其中写入一个数字
- 读取文件的当前内容,然后更改它
关于如何以其他方式实现所列目标的建议也值得赞赏。