1
在一个Java程序中,我得到了一个java.nio.Path
对象,我需要锁定一个文件,然后从中加载一个java.util.Properties
对象。在Java中,使用java.nio库和FileChannel,如何从文件加载Properties对象?
,我读了正确的方式来获得文件的共享锁,表示为Path
,是获得java.nio.channels.FileChannel
与共享锁channel.lock(0L, Long.MAX_VALUE, true)
final FileChannel channel = FileChannel.open(filePath, StandardOpenOption.READ);
final FileLock lock = channel.lock(0L, Long.MAX_VALUE, true);
锁定,现在,我已经锁定了通道,我假设我现在应该在加载我的属性文件时引用该通道。
但是,我没有看到一种简单的方法来将FileChannel
转换成可由Properties
读取的东西。 Properties
需要InputStream
或Reader
。我可以实现自己的读者,但是我确信我的团队宁愿使用开箱即用的东西(如果有的话)。
有没有人知道这样的事情?
我的基本假设是否不正确?如果是这样,这个程序的正确流程是什么?
什么跟所有的锁定和'FileChannel'并发症?定期的属性文件阅读非常简单。 – Kayaman
我希望外部进程可以写入这个文件。我不想在另一个进程正在修改它的同时加载属性。 – ds390s
似乎基于文件的通信可能不太合适。 – Kayaman