Как работать с (Zip)FileSystems — держать открытым или открывать повторно по мере необходимости?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как работать с (Zip)FileSystems — держать открытым или открывать повторно по мере необходимости?

Сообщение Anonymous »

Я работаю над проектом на Java 8. Компонент, над которым я работаю, обеспечивает доступ к файлам, например. config, которые являются ресурсами пути к классам.
Я впервые работаю с nio.file.Path и nio.file.FileSystem. Я поискал в Интернете несколько вещей, но не могу понять, как правильно обращаться с FileSystem, потому что для доступа к файлу с использованием Path `FileSystem` должна быть/оставаться открытой.
Общий вариант использования заключается в том, что несколько потребителей могут в любое время запрашивать одни и те же или разные файлы конфигурации. Доступ к файловому ресурсу будет предоставляться с использованием Path, который является членом объекта MyResource.
Это примерный вариант того, как Path< /code> создается автоматически.

Код: Выделить всё

Path getResource(fileNameStr) {
Path result = null;

URI uri =  ClassLoader.getSystemResource(fileNameStr).toURI();

Map env = new HashMap();
env.put("create", "true");

FileSystem zipfs = FileSystems.newFileSystem(uri);
result = Paths.get(uri);

// question: close zipfs or keep open?

return result;
}
Что я хотел бы понять: может ли (Zip)FileSystem оставаться открытой, чтобы облегчить дальнейшую работу с экземпляром Path и, например, нужны входные потоки? Или он должен всегда закрываться, а затем «перезагружаться», когда файл действительно будет прочитан.
Я предполагаю, что держать несколько ZipFileSystem открытыми на неопределенный срок не предполагается, но это не так. сохранение их открытыми означает, что потребители всегда должны проверять, существует ли уже необходимая ZipFileSystem, а если нет, они должны ее создать. Также необходимо управлять закрытием ZipFileSystem, если несколько потребителей одновременно обращаются к одному и тому же JAR. Я мог бы добавить дополнительные функции для облегчения доступа к файлам, но я предполагаю, что если это необходимо, оно уже существует. Поэтому должен быть ответ/процесс работы с (Zip)FileSystem, который я пока не понимаю.

Подробнее здесь: https://stackoverflow.com/questions/787 ... -as-needed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»