Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class FileSystems extends Object
getDefault
метод, чтобы заставить файловую систему значения по умолчанию и методы фабрики создавать другие типы файловых систем. Первый вызов любого из методов, определенных этим class, вызывает значение по умолчанию provider
быть загруженным. Провайдер значения по умолчанию, идентифицированный схемой URI "файл", создает FileSystem
это обеспечивает доступ к файловым системам, доступным для виртуальной машины Java. Если процесс загрузки или инициализации провайдера значения по умолчанию перестал работать тогда, неустановленная ошибка бросается.
Первый вызов installedProviders
метод, посредством вызова любого из newFileSystem
методы, определенные этим class, определяют местоположение и загружают всех установленных провайдеров файловой системы. Установленные провайдеры загружаются, используя средство загрузки поставщика услуг, определенное ServiceLoader
class. Установленные провайдеры загружаются, используя систему загрузчик class. Если система, загрузчик class не может быть сочтен тогда расширением загрузчиком class, используется; если нет никакого расширения загрузчика class тогда начальная загрузка, загрузчик class используется. Провайдеры обычно устанавливаются, размещая их в файле JAR на приложении путь class или в каталоге расширения, файл JAR содержит названный конфигурационный файл провайдера java.nio.file.spi.FileSystemProvider
в каталоге ресурса META-INF/services
, и списки файлов один или более полностью определенные имена конкретного подкласса FileSystemProvider
у этого есть нулевой конструктор параметра. Упорядочивание, которое устанавливало провайдеров, располагается, определенная реализация. Если провайдер инстанцируют и getScheme
возвращает ту же самую схему URI провайдера, который ранее инстанцировали тогда, последний раз инстанцированная копия отбрасывается. Схемы URI сравниваются без отношения, чтобы случиться. Во время конструкции провайдер может безопасно получить доступ к файлам, связанным с провайдером значения по умолчанию, но заботиться потребности, которые будут взяты, чтобы избежать круговой загрузки других установленных провайдеров. Если круговая загрузка установленных провайдеров обнаруживается тогда, неустановленная ошибка бросается.
Этот class также определяет методы фабрики, которые позволяют 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
class. Первый вызов любого из методов, определенных этим class, определяет местоположение значения по умолчанию provider
объект. Где системное свойство java.nio.file.spi.DefaultFileSystemProvider
не определяется тогда, провайдер значения по умолчанию является провайдером системного значения по умолчанию, который вызывается, чтобы создать файловую систему значения по умолчанию.
Если системное свойство java.nio.file.spi.DefaultFileSystemProvider
определяется тогда, это берется, чтобы быть списком один или более полностью определенными именами конкретных классов провайдера, идентифицированных схемой URI "file"
. Где свойство является списком больше чем одного имени тогда, имена разделяются запятой. Каждый class загружается, используя систему загрузчик class, и инстанцируется, вызывая одного конструктора параметра, тип формального параметра которого FileSystemProvider
. Провайдеры загружаются и инстанцируются в порядке, они перечисляются в свойстве. Если этот процесс сбои или схема провайдера не равен "file"
тогда неустановленная ошибка бросается. Схемы URI обычно сравниваются без отношения, чтобы случиться, но для провайдера значения по умолчанию, схема обязана быть "file"
. Первый провайдер class инстанцируют, вызывая это со ссылкой на провайдера системного значения по умолчанию. Второй провайдер class инстанцируют, вызывая это со ссылкой на первый экземпляр провайдера. Третий провайдер class инстанцируют, вызывая это со ссылкой на второй экземпляр и так далее. Последний провайдер, который инстанцируют, становится провайдером значения по умолчанию; 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 тогда, попытка предпринимается, чтобы определить местоположение провайдера, используя данный загрузчик class. Если провайдер, поддерживающий схему URI, располагается тогда newFileSystem(URI,Map)
вызывается, чтобы создать новую файловую систему.
uri
- URI, идентифицирующий файловую системуenv
- карта провайдера определенные свойства, чтобы сконфигурировать файловую систему; может быть пустымloader
- загрузчик class, чтобы определить местоположение провайдера или 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
тогда попытка предпринимается, чтобы определить местоположение провайдера, используя данный загрузчик class. Если провайдер возвращает файловую систему тогда, поиск завершается, и файловая система возвращается.
path
- путь к файлуloader
- загрузчик class, чтобы определить местоположение провайдера или null
только попытаться определить местоположение установленного провайдераProviderNotFoundException
- если провайдер, поддерживающий этот тип файла, не может быть расположенServiceConfigurationError
- когда ошибка происходит, загружая поставщика услугIOException
- если ошибка ввода-вывода происходитSecurityException
- если менеджер безопасности устанавливается, и он отрицает неуказанное разрешение
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92