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

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

Сообщение Anonymous »

Я работаю над проектом с использованием Java 8. Компонент, над которым я работаю, должен обеспечивать доступ к файлам, например. config, которые являются ресурсами пути к классам.
Я впервые работаю с nio.file.Path и nio.file.FileSystem. Я поискал в Интернете несколько вещей, но не могу понять, как правильно обращаться с FileSystem, потому что для доступа к файлу с использованием Path «Файловая система» должна быть/оставаться открытой.
Общий вариант использования заключается в том, что несколько потребителей могут в любое время запрашивать одни и те же или разные файлы конфигурации. Доступ к файловому ресурсу будет предоставляться с использованием 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

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