Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class FileSystem extends Object implements Closeable
Файловая система значения по умолчанию, полученная, вызывая FileSystems.getDefault
метод, обеспечивает доступ к файловой системе, которая доступна для виртуальной машины Java. FileSystems
class определяет методы, чтобы создать файловые системы, которые обеспечивают доступ к другим типам (пользовательских) файловых систем.
Файловая система является фабрикой для нескольких типов объектов:
getPath
метод преобразовывает системно-зависимую строку пути, возвращаясь a Path
объект, который может использоваться, чтобы определить местоположение и получить доступ к файлу.
getPathMatcher
метод используется, чтобы создать a PathMatcher
это выполняет операции соответствия на путях.
getFileStores
метод возвращает iterator по базовому file-stores
.
getUserPrincipalLookupService
метод возвращается UserPrincipalLookupService
пользователям поиска или группам по имени.
newWatchService
метод создает a WatchService
это может использоваться, чтобы наблюдать объекты за изменениями и событиями.
Файловые системы изменяются значительно. В некоторых случаях файловая система является единственной иерархией файлов с одним высокоуровневым корневым каталогом. В других случаях у этого может быть несколько отличных файловых иерархий, каждый с его собственным высокоуровневым корневым каталогом. getRootDirectories
метод может использоваться, чтобы выполнить итерации по корневым каталогам в файловой системе. Файловая система обычно составляется из один или более базовая file-stores
это обеспечивает хранение для файлов. Хранилища файлов тезисов могут также измениться по функциям, которые они поддерживают, и атрибуты файла или метаданные, которые они связывают с файлами.
Файловая система открыта после создания и может быть закрыта, вызывая close
метод. После того, как закрытый, дальше попытайтесь получить доступ к объектам в причине файловой системы ClosedFileSystemException
быть брошенным. Файловые системы создаются значением по умолчанию provider
не может быть закрыт.
A FileSystem
может обеспечить или доступ для чтения-записи только для чтения к файловой системе. Обеспечивает ли файловая система, доступ только для чтения устанавливается когда FileSystem
создается и может быть протестирован, вызывая isReadOnly
метод. Попытки записать в хранилища файлов посредством объекта, связанного с файловой системой только для чтения, бросают ReadOnlyFileSystemException
.
Файловые системы безопасны для использования многократными параллельными потоками. close
метод может быть вызван в любое время, чтобы закрыть файловую систему, но является ли файловая система асинхронно closeable, определенный провайдер и поэтому неуказанный. Другими словами, если поток получает доступ к объекту в файловой системе, и другой поток вызывает close
метод тогда, которого это может потребовать, чтобы блокировать до первой работы, полон. Закрытие файловой системы вызывает все открытые каналы, наблюдайте службы, и другой closeable
объекты, связанные с файловой системой, которая будет закрыта.
Модификатор | Конструктор и Описание |
---|---|
protected |
FileSystem()
Инициализирует новый экземпляр этого class.
|
Модификатор и Тип | Метод и Описание |
---|---|
abstract void |
close()
Завершения эта файловая система.
|
abstract Iterable<FileStore> |
getFileStores()
Возвращает объект выполнить итерации по базовым хранилищам файлов.
|
abstract Path |
getPath(String first, String... more)
Преобразовывает строку пути, или последовательность строк что когда форма, к которой присоединяются, строка пути, к a
Path . |
abstract PathMatcher |
getPathMatcher(String syntaxAndPattern)
Возвраты a
PathMatcher это выполняет операции соответствия на String представление Path объекты, интерпретируя данный образец. |
abstract Iterable<Path> |
getRootDirectories()
Возвращает объект выполнить итерации по путям корневых каталогов.
|
abstract String |
getSeparator()
Возвращает разделитель имени, представленный как строка.
|
abstract UserPrincipalLookupService |
getUserPrincipalLookupService()
Возвраты
UserPrincipalLookupService для этой файловой системы (дополнительная работа). |
abstract boolean |
isOpen()
Говорит, открыта ли эта файловая система.
|
abstract boolean |
isReadOnly()
Говорит, позволяет ли эта файловая система только доступ только для чтения к своим хранилищам файлов.
|
abstract WatchService |
newWatchService()
Создает новое
WatchService (дополнительная работа). |
abstract FileSystemProvider |
provider()
Возвращает провайдера, который создал эту файловую систему.
|
abstract Set<String> |
supportedFileAttributeViews()
Возвращает набор
names из представлений атрибута файла, поддерживаемых этим FileSystem . |
public abstract FileSystemProvider provider()
public abstract void close() throws IOException
После того, как файловая система закрывается тогда весь последующий доступ к файловой системе, или методами, определенными этим class или на объектах, связанных с этой файловой системой, броском ClosedFileSystemException
. Если файловая система уже закрывается, затем вызывая этот метод, не имеет никакого эффекта.
Закрытие файловой системы закроется, все открываются channels
, directory-streams
, watch-service
, и другие объекты closeable связались с этой файловой системой. default
файловая система не может быть закрыта.
close
в интерфейсе Closeable
close
в интерфейсе AutoCloseable
IOException
- Если ошибка ввода-вывода происходитUnsupportedOperationException
- Брошенный в случае файловой системы значения по умолчаниюpublic abstract boolean isOpen()
Файловые системы, создаваемые провайдером значения по умолчанию, всегда открыты.
true
если, и только если, эта файловая система открытаpublic abstract boolean isReadOnly()
true
если, и только если, эта файловая система обеспечивает доступ только для чтенияpublic abstract String getSeparator()
Разделитель имени используется, чтобы разделить имена в строке пути. Реализация может поддерживать многократные разделители имени, когда этот метод возвращает реализацию определенный разделитель имени по умолчанию. Этот разделитель используется, создавая строки пути, вызывая toString()
метод.
В случае провайдера значения по умолчанию этот метод возвращает тот же самый разделитель как File.separator
.
public abstract Iterable<Path> getRootDirectories()
Файловая система обеспечивает доступ к хранилищу файлов, которое может быть составлено из многих отличных файловых иерархий, каждого с его собственным высокоуровневым корневым каталогом. Если не отрицающийся менеджером безопасности, каждый элемент в возвращенном iterator соответствует корневому каталогу отличной файловой иерархии. Порядок элементов не определяется. Файловые иерархии могут измениться во время времени жизни виртуальной машины Java. Например, в некоторых реализациях, вставка съемных носителей может привести к созданию новой файловой иерархии с ее собственным высокоуровневым каталогом.
Когда менеджер безопасности устанавливается, он вызывается, чтобы проверить доступ к каждому корневому каталогу. Если отрицающийся, корневой каталог не возвращается iterator. В случае провайдера значения по умолчанию, SecurityManager.checkRead(String)
метод вызывается, чтобы проверить доступ для чтения к каждому корневому каталогу. Это системно-зависимо, если проверки разрешения делаются, когда iterator получается или во время итерации.
public abstract Iterable<FileStore> getFileStores()
Элементы возвращенного iterator FileStores
для этой файловой системы. Порядок элементов не определяется, и хранилища файлов могут измениться во время времени жизни виртуальной машины Java. Когда ошибка ввода-вывода происходит, возможно потому что хранилище файлов не доступно, тогда это не возвращается iterator.
В случае провайдера значения по умолчанию, и менеджера безопасности устанавливается, менеджер безопасности вызывается, чтобы проверить RuntimePermission
("getFileStoreAttributes"). Если отрицающийся, то никакие хранилища файлов не возвращаются iterator. Кроме того, менеджер безопасности SecurityManager.checkRead(String)
метод вызывается, чтобы проверить доступ для чтения к каталогу самого верхнего уровня хранилища файлов. Если отрицающийся, хранилище файлов не возвращается iterator. Это системно-зависимо, если проверки разрешения делаются, когда iterator получается или во время итерации.
Пример использования: Предположите, что мы хотим напечатать использование пространства для всех хранилищ файлов:
for (FileStore store: FileSystems.getDefault().getFileStores()) { long total = store.getTotalSpace() / 1024; long used = (store.getTotalSpace() - store.getUnallocatedSpace()) / 1024; long avail = store.getUsableSpace() / 1024; System.out.format("%-20s %12d %12d %12d%n", store, total, used, avail); }
public abstract Set<String> supportedFileAttributeViews()
names
из представлений атрибута файла, поддерживаемых этим FileSystem
. BasicFileAttributeView
обязан поддерживаться, и поэтому набор содержит по крайней мере один элемент, "основной".
supportsFileAttributeView(String)
метод может использоваться, чтобы протестировать если базовое FileStore
поддерживает атрибуты файла, идентифицированные представлением атрибута файла.
public abstract Path getPath(String first, String... more)
Path
. Если more
не определяет элементов тогда значение first
параметр является строкой пути, чтобы преобразовать. Если more
определяет один или более элементов тогда каждая непустая строка, включая first
, как полагают, последовательность элементов имени (см. Path
) и соединяется, чтобы сформировать строку пути. Детали относительно того, как к Строкам присоединяются, являются определенным провайдером, но обычно к ним присоединятся, используя name-separator
как разделитель. Например, если разделитель имени"/
"и getPath("/foo","bar","gus")
вызывается, тогда строка пути "/foo/bar/gus"
преобразовывается в a Path
. A Path
представление пустого пути возвращается если first
пустая строка и more
не содержит непустых строк. Парсинг и преобразование в объект пути являются по сути зависящими от реализации. В самом простом случае строка пути отклоняется, и InvalidPathException
брошенный, если строка пути содержит символы, которые не могут быть преобразованы в символы, которые являются законными к хранилищу файлов. Например, на системах UNIX, NUL (\u0000) символ не позволяют присутствовать в пути. Реализация может хотеть отклонять строки пути, которые содержат имена, которые более длинны чем позволенные любым хранилищем файлов, и где реализация поддерживает сложный синтаксис пути, это может хотеть отклонять строки пути, которые ужасно формируются.
В случае провайдера значения по умолчанию строки пути анализируются основанные на определении путей на уровне виртуальной файловой системы или платформе. Например, операционная система, возможно, не позволяет определенным символам присутствовать в имени файла, но определенное базовое хранилище файлов может ввести различные или дополнительные ограничения для набора юридических символов.
Этот метод броски InvalidPathException
когда строка пути не может быть преобразована в путь. Где только возможно, и где применимый, исключение создается с index
значение, указывающее на первую позицию в path
параметр, который заставил строку пути быть отклоненной.
first
- строка пути или начальная часть строки путиmore
- дополнительные строки, которые будут соединены, чтобы сформировать строку путиPath
InvalidPathException
- Если строка пути не может быть преобразованаpublic abstract PathMatcher getPathMatcher(String syntaxAndPattern)
PathMatcher
это выполняет операции соответствия на String
представление Path
объекты, интерпретируя данный образец. syntaxAndPattern
параметр идентифицирует синтаксис и образец и принимает форму: гдеsyntax:pattern
':'
стенды для себя. A FileSystem
реализация поддерживает"glob
"и"regex
"синтаксисы, и могут поддерживать других. Значение компонента синтаксиса сравнивается без отношения, чтобы случиться.
Когда синтаксис"glob
"тогда String
представление пути является соответствующим, используя ограниченный язык образца, который напоминает регулярные выражения, но с более простым синтаксисом. Например:
*.java
Соответствует путь, который представляет имя файла, заканчивающееся в .java
*.*
Имена файлов соответствий, содержащие точку *.{java,class}
Имена файлов соответствий, заканчивающиеся .java
или.class
foo.?
Имена файлов соответствий, запускающиеся с foo.
и единственное символьное расширение/home/*/* Соответствия /home/gus/data на платформах UNIX /home/** Соответствия /home/gus и /home/gus/data на платформах UNIX C:\\* C:\foo соответствий и C:\bar на платформе Windows (отмечают, что наклонной черты влево оставляют; как строковый литерал на Языке Java образцом был бы "C:\\\\*"),
Следующие правила используются, чтобы интерпретировать образцы шарика:
*
символ соответствует нуль или больше characters
из a name
компонент, не пересекая границы каталога.
**
символы соответствуют нуль или больше characters
пересечение границ каталога.
?
символ соответствует точно один символ компонента имени.
Символ наклонной черты влево (\
) привык к символам ESC, которые были бы иначе интерпретированы как специальные символы. Выражение \\
соответствует единственную наклонную черту влево, и "\{" соответствует левую фигурную скобку например.
[ ]
символы являются выражением скобки, которые соответствуют единственный символ компонента имени из ряда символов. Например, [abc]
соответствия "a"
, "b"
, или "c"
. Дефис (-
) может использоваться, чтобы определить диапазон так [a-z]
определяет диапазон, который соответствует от "a"
к "z"
(включительно). Эти формы могут быть смешаны так [abce-г] соответствия "a"
, "b"
, "c"
, "e"
, "f"
или "g"
. Если символ после [
a !
тогда это используется для отрицания так [!a-c]
соответствия любой символ кроме "a"
, "b"
, или "c"
.
В пределах выражения скобки *
, ?
и \
символы соответствуют себя. (-
) символ соответствует себя, если это - первый символ в пределах скобок, или первый символ после !
инвертируя.
{ }
символы являются группой подобразцов, где группа соответствует, если какой-либо подобразец в группе соответствует. ","
символ используется, чтобы разделить подобразцы. Группы не могут быть вложены.
Продвижение period/dot символы в имени файла обрабатывается как регулярные символы в операциях соответствия. Например, "*"
образец шарика соответствует имя файла ".login"
. Files.isHidden(java.nio.file.Path)
метод может использоваться, чтобы протестировать, считают ли файл скрытым.
Все другие символы соответствуют себя зависящим от реализации способом. Это включает символы, представляющие любого name-separators
.
Соответствие root
компоненты являются очень зависящими от реализации и не определяются.
Когда синтаксис"regex
"тогда компонент образца является регулярным выражением как определено Pattern
class.
И для шарика и для regex синтаксисов, соответствующие детали, такой как, является ли соответствие чувствительным к регистру, являются зависящими от реализации и поэтому не определенные.
syntaxAndPattern
- Синтаксис и образецIllegalArgumentException
- Если параметр не принимает форму: syntax:pattern
PatternSyntaxException
- Если образец недопустимUnsupportedOperationException
- Если синтаксис образца не известен реализацииFiles.newDirectoryStream(Path,String)
public abstract UserPrincipalLookupService getUserPrincipalLookupService()
UserPrincipalLookupService
для этой файловой системы (дополнительная работа). Получающаяся служба поиска может привыкнуть к пользователю поиска или названиям группы. Пример использования: Предположите, что мы хотим сделать "joe" владельцем файла:
UserPrincipalLookupService lookupService = FileSystems.getDefault().getUserPrincipalLookupService(); Files.setOwner(path, lookupService.lookupPrincipalByName("joe"));
UserPrincipalLookupService
для этой файловой системыUnsupportedOperationException
- Если это FileSystem
не делает действительно имеет службу поискаpublic abstract WatchService newWatchService() throws IOException
WatchService
(дополнительная работа). Этот метод создает новую службу часов, которая может использоваться, чтобы наблюдать зарегистрированные объекты за изменениями и событиями.
UnsupportedOperationException
- Если это FileSystem
не поддерживает объекты файловой системы наблюдения для изменений и событий. Это исключение не выдается FileSystems
создаваемый провайдером значения по умолчанию.IOException
- Если ошибка ввода-вывода происходит
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92