Я впервые работаю с 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;
}
Я предполагаю, что держать несколько ZipFileSystem открытыми на неопределенный срок не предполагается, но это не так. сохранение их открытыми означает, что потребители всегда должны проверять, существует ли уже необходимая ZipFileSystem, а если нет, они должны ее создать. Также необходимо управлять закрытием ZipFileSystem, если несколько потребителей одновременно обращаются к одному и тому же JAR. Я мог бы добавить дополнительные функции для облегчения доступа к файлам, но я предполагаю, что если это необходимо, оно уже существует. Поэтому должен быть ответ/процесс работы с (Zip)FileSystem, который я пока не понимаю.
Подробнее здесь: https://stackoverflow.com/questions/787 ... -as-needed
Мобильная версия