Spec-Zone.ru › OpenJDK 24

Класс FileSystems

java.lang.Object
java.nio.file.FileSystems
public final class FileSystems extends Object
Методы-фабрики для файловых систем. Этот класс определяет метод getDefault для получения стандартной файловой системы и методы-фабрики для создания других типов файловых систем.

Первое обращение к любому из методов, определенных в этом классе, вызывает загрузку стандартного provider. Стандартный поставщик, идентифицируемый схемой URI "file", создаёт FileSystem, обеспечивающий доступ к файловым системам, доступным для виртуальной машины Java. Если процесс загрузки или инициализации стандартного поставщика завершается с ошибкой, выбрасывается неопределённая ошибка.

Первое обращение к методу installedProviders, путём вызова любого из newFileSystem методов, определенных в этом классе, находит и загружает все установленные поставщики файловых систем. Установленные поставщики загружаются с помощью механизма загрузки поставщиков служб, определенного классом ServiceLoader. Установленные поставщики загружаются с помощью системного загрузчика классов. Если системный загрузчик классов не найден, используется платформенный загрузчик классов. Поставщики обычно устанавливаются путём размещения их в JAR-файле в пути класса приложения. JAR-файл содержит файл конфигурации поставщика, имеющий имя java.nio.file.spi.FileSystemProvider в каталоге ресурсов META-INF/services, и файл перечисляет один или несколько полностью квалифицированных имен конкретных подклассов FileSystemProvider, имеющих конструктор без аргументов. Порядок нахождения установленных поставщиков зависит от реализации. Если поставщик создан, и его getScheme возвращает ту же схему URI, что и ранее созданный поставщик, то последний созданный дубликат отбрасывается. Схемы URI сравниваются без учёта регистра. Во время создания поставщик может безопасно обращаться к файлам, связанным со стандартным поставщиком, но необходимо следить, чтобы не происходила циклическая загрузка других установленных поставщиков. Если обнаружена циклическая загрузка установленных поставщиков, выбрасывается неопределённая ошибка.

Этот класс также определяет методы-фабрики, которые позволяют указать ClassLoader при поиске поставщика. Как и с установленными поставщиками, классы поставщиков определяются путем размещения файла конфигурации поставщика в каталоге ресурсов META-INF/services.

Если один поток инициирует загрузку установленных поставщиков файловых систем, а другой поток вызывает метод, который также пытается загрузить поставщиков, то метод будет блокирован до завершения загрузки.

Since:
1.7

Краткое описание методов

Модификатор и тип Метод Описание
static FileSystem getDefault()
Возвращает стандартную FileSystem.
static FileSystem getFileSystem(URI uri)
Возвращает ссылку на существующую FileSystem.
static FileSystem newFileSystem(URI uri, Map<String,?> env)
Создает новую файловую систему, идентифицируемую URI
static FileSystem newFileSystem(URI uri, Map<String,?> env, ClassLoader loader)
Создает новую файловую систему, идентифицируемую URI
static FileSystem newFileSystem(Path path)
Создает новую FileSystem для доступа к содержимому файла как к файловой системе.
static FileSystem newFileSystem(Path path, ClassLoader loader)
Создает новую FileSystem для доступа к содержимому файла как к файловой системе.
static FileSystem newFileSystem(Path path, Map<String,?> env)
Создает новую FileSystem для доступа к содержимому файла как к файловой системе.
static FileSystem newFileSystem(Path path, Map<String,?> env, ClassLoader loader)
Создает новую FileSystem для доступа к содержимому файла как к файловой системе.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Краткое описание методов

getDefault

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:///" для получения ссылки на файловую систему по умолчанию.

Последующие вызовы этого метода возвращают файловую систему, которая была возвращена при первом вызове.

Возвращает:
файловую систему по умолчанию

getFileSystem

public static FileSystem getFileSystem(URI uri)
Возвращает ссылку на существующую FileSystem.

Этот метод перебирает поставщиков installed, чтобы найти поставщика, идентифицированного схемой URI scheme заданного URI. Схемы URI сравниваются без учета регистра. Точная форма URI в значительной степени зависит от поставщика. Если поставщик найден, вызывается его метод getFileSystem для получения ссылки на FileSystem.

После того, как файловая система, созданная этим поставщиком, closed, зависит от поставщика, возвращает ли этот метод ссылку на закрытую файловую систему или выбрасывает исключение FileSystemNotFoundException. Если поставщик разрешает создание новой файловой системы с тем же URI, что и файловая система, созданная им ранее, то этот метод выбрасывает исключение, если вызывается после закрытия файловой системы (и до создания нового экземпляра методом newFileSystem).

Параметры:
uri - URI для поиска файловой системы
Возвращает:
ссылка на файловую систему
Выбрасывает:
IllegalArgumentException - если не выполнены предварительные условия для параметра uri
FileSystemNotFoundException - если файловая система, идентифицированная URI, не существует
ProviderNotFoundException - если поставщик, поддерживающий схему URI, не установлен

newFileSystem

public static FileSystem newFileSystem(URI uri, Map<String,?> env) throws IOException
Создает новую файловую систему, идентифицированную URI

Этот метод перебирает поставщиков installed, чтобы найти поставщика, идентифицированного схемой URI scheme заданного URI. Схемы URI сравниваются без учета регистра. Точная форма URI в значительной степени зависит от поставщика. Если поставщик найден, вызывается его метод newFileSystem(URI,Map) для создания новой файловой системы.

После того, как файловая система closed, зависит от поставщика, разрешает ли поставщик создание новой файловой системы с тем же URI, что и файловая система, созданная им ранее.

Пример использования: Предположим, что установлен поставщик, идентифицированный схемой "memory":

    FileSystem fs = FileSystems.newFileSystem(URI.create("memory:///?name=logfs"),
                                              Map.of("capacity", "16G", "blockSize", "4k"));
Параметры:
uri - URI, идентифицирующий файловую систему
env - карта свойств, зависящих от поставщика, для настройки файловой системы; может быть пустой
Возвращает:
новую файловую систему
Выбрасывает:
IllegalArgumentException - если не выполнены предварительные условия для параметра uri, или параметр env не содержит свойств, требуемых поставщиком, или значение свойства неверно
FileSystemAlreadyExistsException - если файловая система уже создана
ProviderNotFoundException - если поставщик, поддерживающий схему URI, не установлен
IOException - если при создании файловой системы возникает ошибка ввода-вывода

newFileSystem

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 - если при создании файловой системы возникает ошибка ввода-вывода

newFileSystem

public static FileSystem newFileSystem(Path path, ClassLoader loader) throws IOException
Создает новую FileSystem для доступа к содержимому файла как к файловой системе.

Этот метод использует специализированные поставщики, которые создают псевдофайловые системы, где содержимое одного или нескольких файлов рассматривается как файловая система.

Этот метод сначала пытается найти установленного поставщика точно так же, как метод newFileSystem(Path, Map, ClassLoader) с пустой картой. Если ни один из установленных поставщиков не возвращает FileSystem, то предпринимается попытка найти поставщика с помощью заданного загрузчика классов. Если поставщик возвращает файловую систему, то поиск завершается, и возвращается файловая система.

Параметры:
path - путь к файлу
loader - загрузчик классов для поиска поставщика или null для попытки найти только установленного поставщика
Возвращает:
новую файловую систему
Выбрасывает:
ProviderNotFoundException - если поставщик, поддерживающий этот тип файла, не может быть найден
ServiceConfigurationError - если возникает ошибка при загрузке поставщика сервиса
IOException - если возникает ошибка ввода-вывода

newFileSystem

public static FileSystem newFileSystem(Path path, Map<String,?> env) throws IOException
Создает новую FileSystem для доступа к содержимому файла как к файловой системе.

Этот метод использует специализированные поставщики, которые создают псевдофайловые системы, где содержимое одного или нескольких файлов рассматривается как файловая система.

Этот метод сначала пытается найти установленного поставщика точно так же, как метод newFileSystem(Path, Map, ClassLoader). Если поставщик найден, вызывается его метод newFileSystem(Path, Map) для создания новой файловой системы.

Параметры:
path - путь к файлу
env - карта свойств, зависящих от поставщика, для настройки файловой системы; может быть пустой
Возвращает:
новую файловую систему
Выбрасывает:
ProviderNotFoundException - если поставщик, поддерживающий этот тип файла, не может быть найден
ServiceConfigurationError - если возникает ошибка при загрузке поставщика сервиса
IOException - если возникает ошибка ввода-вывода
С версии:
13

newFileSystem

public static FileSystem newFileSystem(Path path) throws IOException
Создаёт новый FileSystem для доступа к содержимому файла в качестве файловой системы.

Этот метод использует специализированные провайдеры, которые создают псевдо-файловые системы, где содержимое одного или нескольких файлов рассматривается как файловая система.

Этот метод сначала пытается найти установленного провайдера точно так же, как и метод newFileSystem(Path, Map, ClassLoader). Если найден, вызывается метод провайдера newFileSystem(Path, Map) с пустым отображением для создания новой файловой системы.

Параметры:
path - путь к файлу
Возвращает:
новую файловую систему
Исключения:
ProviderNotFoundException - если не найден провайдер, поддерживающий этот тип файла
ServiceConfigurationError - если произошла ошибка при загрузке провайдера службы
IOException - если произошла ошибка ввода-вывода
С:
13

newFileSystem

public static FileSystem newFileSystem(Path path, Map<String,?> env, ClassLoader loader) throws IOException
Создаёт новый FileSystem для доступа к содержимому файла в качестве файловой системы.

Этот метод использует специализированные провайдеры, которые создают псевдо-файловые системы, где содержимое одного или нескольких файлов рассматривается как файловая система.

Этот метод перебирает провайдеры installed. Он вызывает метод newFileSystem(Path,Map) каждого провайдера по очереди. Если провайдер возвращает файловую систему, итерация завершается, и файловая система возвращается. Если ни один из установленных провайдеров не возвращает FileSystem, то предпринимается попытка найти провайдер, используя указанный загрузчик классов. Если провайдер возвращает файловую систему, поиск завершается, и файловая система возвращается.

Параметры:
path - путь к файлу
env - отображение свойств, специфичных для провайдера, для настройки файловой системы; может быть пустым
loader - загрузчик классов для поиска провайдера или null для попытки поиска только установленного провайдера
Возвращает:
новую файловую систему
Исключения:
ProviderNotFoundException - если не найден провайдер, поддерживающий этот тип файла
ServiceConfigurationError - если произошла ошибка при загрузке провайдера службы
IOException - если произошла ошибка ввода-вывода
С:
13

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/nio/file/FileSystems.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API