[英]In Java, using the java.nio library and a FileChannel, how can I load a Properties object from a file?
在 Java 程序中,我得到了一个java.nio.Path
对象,我需要锁定一个文件,然后从中加载一个java.util.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
。 我可以实现我自己的阅读器,但我确信我的团队更愿意使用开箱即用的东西(如果有的话)。
有没有人知道这样的事情?
我的基本假设不正确吗? 如果是这样,此过程的正确流程是什么?
您似乎错过了Channels
助手类的存在:
Properties properties=new Properties();
try(final FileChannel channel = FileChannel.open(filePath, StandardOpenOption.READ);
final FileLock lock = channel.lock(0L, Long.MAX_VALUE, true)) {
properties.load(Channels.newInputStream(channel));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.