Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class FileSystems extends Object
getDefault
метод, чтобы заставить файловую систему по умолчанию и методы фабрики создавать другие типы файловых систем. Первый вызов любого из методов, определенных этим классом, вызывает значение по умолчанию provider
быть загруженным. Провайдер по умолчанию, идентифицированный схемой URI "файл", создает FileSystem
это обеспечивает доступ к файловым системам, доступным для виртуальной машины Java. Если процесс загрузки или инициализации провайдера по умолчанию перестал работать тогда, неустановленная ошибка бросается.
Первый вызов installedProviders
метод, посредством вызова любого из newFileSystem
методы, определенные этим классом, определяют местоположение и загружают всех установленных провайдеров файловой системы. Установленные провайдеры загружаются, используя поставщика услуг, загружающего средство, определенное ServiceLoader
класс. Установленные провайдеры загружаются, используя системный загрузчик класса. Если системный загрузчик класса не может быть найден тогда, загрузчик класса расширения используется; если нет никакого загрузчика класса расширения тогда, загрузчик класса начальной загрузки используется. Провайдеры обычно устанавливаются, размещая их в файле JAR на пути класса приложений или в каталоге расширения, файл JAR содержит названный конфигурационный файл провайдера java.nio.file.spi.FileSystemProvider
в каталоге ресурса META-INF/services
, и списки файлов один или более полностью определенные имена конкретного подкласса FileSystemProvider
у этого есть нулевой конструктор параметра. Упорядочивание, которое устанавливало провайдеров, располагается, определенная реализация. Если провайдер инстанцируют и getScheme
возвращает ту же самую схему URI провайдера, который ранее инстанцировали тогда, последний раз инстанцированная копия отбрасывается. Схемы URI сравниваются без отношения, чтобы случиться. Во время конструкции провайдер может безопасно получить доступ к файлам, связанным с провайдером по умолчанию, но заботиться потребности, которые будут взяты, чтобы избежать круговой загрузки других установленных провайдеров. Если круговая загрузка установленных провайдеров обнаруживается тогда, неустановленная ошибка бросается.
Этот класс также определяет методы фабрики, которые позволяют a ClassLoader
быть определенным, определяя местоположение провайдера. Как с установленными провайдерами, классы провайдера идентифицируются, помещая конфигурационный файл провайдера в каталоге ресурса META-INF/services
.
Если поток будет инициировать загрузку установленных провайдеров файловой системы, и другой поток вызывает метод, который также пытается загрузить провайдеров тогда, то метод блокирует, пока загрузка не завершается.
Модификатор и Тип | Метод и Описание |
---|---|
static FileSystem |
getDefault()
Возвращает значение по умолчанию
FileSystem . |
static FileSystem |
getFileSystem(URI uri)
Возвращает ссылку на существующее
FileSystem . |
static FileSystem |
newFileSystem(Path path, ClassLoader loader)
Создает новое
FileSystem получить доступ к содержанию файла как файловая система. |
static FileSystem |
newFileSystem(URI uri, Map<String,?> env)
Создает новую файловую систему, которая идентифицируется a
URI |
static FileSystem |
newFileSystem(URI uri, Map<String,?> env, ClassLoader loader)
Создает новую файловую систему, которая идентифицируется a
URI |
public static FileSystem getDefault()
FileSystem
. Файловая система по умолчанию создает объекты, которые обеспечивают доступ к файловым системам, доступным для виртуальной машины Java. Рабочий каталог файловой системы является текущим пользовательским каталогом, названным системным свойством user.dir
. Это учитывает функциональную совместимость с java.io.File
класс. Первый вызов любого из методов, определенных этим классом, определяет местоположение значения по умолчанию provider
объект. Где системное свойство java.nio.file.spi.DefaultFileSystemProvider
не определяется тогда, провайдер по умолчанию является провайдером системного значения по умолчанию, который вызывается, чтобы создать файловую систему по умолчанию.
Если системное свойство java.nio.file.spi.DefaultFileSystemProvider
определяется тогда, это берется, чтобы быть списком один или более полностью определенными именами конкретных классов провайдера, идентифицированных схемой URI "file"
. Где свойство является списком больше чем одного имени тогда, имена разделяются запятой. Каждый класс загружается, используя системный загрузчик класса, и инстанцируется, вызывая одного конструктора параметра, тип формального параметра которого FileSystemProvider
. Провайдеры загружаются и инстанцируются в порядке, они перечисляются в свойстве. Если этот процесс сбои или схема провайдера не равен "file"
тогда неустановленная ошибка бросается. Схемы URI обычно сравниваются без отношения, чтобы случиться, но для провайдера по умолчанию, схема обязана быть "file"
. Первый класс провайдера инстанцируют, вызывая это со ссылкой на провайдера системного значения по умолчанию. Второй класс провайдера инстанцируют, вызывая это со ссылкой на первый экземпляр провайдера. Третий класс провайдера инстанцируют, вызывая это со ссылкой на второй экземпляр и так далее. Последний провайдер, который инстанцируют, становится провайдером по умолчанию; getFileSystem
метод вызывается с URI "file:///"
получить ссылку на файловую систему по умолчанию.
Последующие вызовы этого метода возвращают файловую систему, которая была возвращена первым вызовом.
public static FileSystem getFileSystem(URI uri)
FileSystem
. Этот метод выполняет итерации по installed
провайдеры, чтобы определить местоположение провайдера, который идентифицируется URI scheme
из данного URI. Схемы URI сравниваются без отношения, чтобы случиться. Точная форма URI является чрезвычайно зависимым провайдером. Если найдено, провайдер getFileSystem
метод вызывается, чтобы получить ссылку на FileSystem
.
Как только файловая система, создаваемая этим провайдером, closed
это зависимо от провайдера, если этот метод возвращает ссылку на закрытую файловую систему или броски FileSystemNotFoundException
. Если провайдер позволяет новой файловой системе создаваться с тем же самым URI как файловая система, это ранее создало тогда этот метод, выдает исключение если вызвано после того, как файловая система закрывается (и прежде, чем новый экземпляр будет создан newFileSystem
метод).
Если менеджер безопасности устанавливается тогда, реализация провайдера может потребовать, чтобы проверить разрешение прежде, чем возвратить ссылку на существующую файловую систему. В случае default
файловая система, никакая проверка разрешения не требуется.
IllegalArgumentException
- если предварительные условия для uri
параметр не встречаетсяFileSystemNotFoundException
- если файловая система, идентифицированная URI, не существуетProviderNotFoundException
- если провайдер, поддерживающий схему URI, не устанавливаетсяSecurityException
- если менеджер безопасности устанавливается, и он отрицает неуказанное разрешениеpublic static FileSystem newFileSystem(URI uri, Map<String,?> env) throws IOException
URI
Этот метод выполняет итерации по installed
провайдеры, чтобы определить местоположение провайдера, который идентифицируется URI scheme
из данного URI. Схемы URI сравниваются без отношения, чтобы случиться. Точная форма URI является чрезвычайно зависимым провайдером. Если найдено, провайдер newFileSystem(URI,Map)
метод вызывается, чтобы создать новую файловую систему.
Как только файловая система closed
это зависимо от провайдера, если провайдер позволяет новой файловой системе создаваться с тем же самым URI как файловая система, это ранее создало.
Пример использования: Предположите, что есть провайдер, идентифицированный схемой "memory"
установленный:
Map<String,String> env = new HashMap<>(); env.put("capacity", "16G"); env.put("blockSize", "4k"); FileSystem fs = FileSystems.newFileSystem(URI.create("memory:///?name=logfs"), env);
uri
- URI, идентифицирующий файловую системуenv
- карта провайдера определенные свойства, чтобы сконфигурировать файловую систему; может быть пустымIllegalArgumentException
- если предварительные условия для uri
параметр не встречается, или env
параметр не содержит свойства, требуемые провайдером, или значение свойства недопустимоFileSystemAlreadyExistsException
- если файловая система была уже созданаProviderNotFoundException
- если провайдер, поддерживающий схему URI, не устанавливаетсяIOException
- если ошибка ввода-вывода происходит, создавая файловую системуSecurityException
- если менеджер безопасности устанавливается, и он отрицает неуказанное разрешение, требуемое реализацией провайдера файловой системыpublic static FileSystem newFileSystem(URI uri, Map<String,?> env, ClassLoader loader) throws IOException
URI
Этот метод сначала пытается определить местоположение установленного провайдера точно тем же самым способом как newFileSystem(URI,Map)
метод. Если ни один из установленных провайдеров не поддерживает схему URI тогда, попытка предпринимается, чтобы определить местоположение провайдера, используя данный загрузчик класса. Если провайдер, поддерживающий схему URI, располагается тогда newFileSystem(URI,Map)
вызывается, чтобы создать новую файловую систему.
uri
- URI, идентифицирующий файловую системуenv
- карта провайдера определенные свойства, чтобы сконфигурировать файловую систему; может быть пустымloader
- загрузчик класса, чтобы определить местоположение провайдера или null
только попытаться определить местоположение установленного провайдераIllegalArgumentException
- если предварительные условия для uri
параметр не встречается, или env
параметр не содержит свойства, требуемые провайдером, или значение свойства недопустимоFileSystemAlreadyExistsException
- если схема URI идентифицирует установленного провайдера, и файловая система была уже созданаProviderNotFoundException
- если провайдер, поддерживающий схему URI, не находитсяServiceConfigurationError
- когда ошибка происходит, загружая поставщика услугIOException
- ошибка ввода-вывода происходит, создавая файловую системуSecurityException
- если менеджер безопасности устанавливается, и он отрицает неуказанное разрешение, требуемое реализацией провайдера файловой системыpublic static FileSystem newFileSystem(Path path, ClassLoader loader) throws IOException
FileSystem
получить доступ к содержанию файла как файловая система. Этот метод использует специализированных провайдеров, которые создают псевдо файловые системы, где содержание одного или более файлов обрабатывается как файловая система.
Этот метод выполняет итерации по installed
провайдеры. Это вызывает, поочередно, каждого провайдера newFileSystem(Path,Map)
метод с пустой картой. Если провайдер возвращает файловую систему тогда, итерация завершается, и файловая система возвращается. Если ни один из установленных провайдеров не возвращает a FileSystem
тогда попытка предпринимается, чтобы определить местоположение провайдера, используя данный загрузчик класса. Если провайдер возвращает файловую систему тогда, поиск завершается, и файловая система возвращается.
path
- путь к файлуloader
- загрузчик класса, чтобы определить местоположение провайдера или null
только попытаться определить местоположение установленного провайдераProviderNotFoundException
- если провайдер, поддерживающий этот тип файла, не может быть расположенServiceConfigurationError
- когда ошибка происходит, загружая поставщика услугIOException
- если ошибка ввода-вывода происходитSecurityException
- если менеджер безопасности устанавливается, и он отрицает неуказанное разрешение
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.