В программе на 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
. Я мог бы реализовать свой собственный ридер, но я уверен, что моя команда предпочла бы, чтобы я использовал что-то готовое, если оно доступно.
Кто-нибудь знает о таком?
Является ли мое основное предположение неверным? Если да, то каков правильный поток для этой процедуры?
FileChannel
сложность? Регулярное чтение файла свойств очень просто. - person Kayaman   schedule 10.02.2017