Spec-Zone.ru › OpenJDK 8

Класс Файлы

  • java.lang.Object
    • java.nio.file.Files

public final class Files
extends Object

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

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

С:
1.7

Методы

Модификатор и Тип Метод и Описание
static long copy(InputStream in, Path target, CopyOption... options)

Копирует все байты из входного потока в файл.

static long copy(Path source, OutputStream out)

Копирует все байты из файла в выходной поток.

static Path copy(Path source, Path target, CopyOption... options)

Копирует файл в целевой файл.

static Path createDirectories(Path dir, FileAttribute<?>... attrs)

Создаёт каталог, создавая сначала все несуществующие родительские каталоги.

static Path createDirectory(Path dir, FileAttribute<?>... attrs)

Создаёт новый каталог.

static Path createFile(Path path, FileAttribute<?>... attrs)

Создаёт новый и пустой файл, отклоняя операцию, если файл уже существует.

static Path createLink(Path link, Path existing)

Создаёт новую ссылку (запись каталога) для существующего файла (необязательная операция).

static Path createSymbolicLink(Path link, Path target, FileAttribute<?>... attrs)

Создаёт символическую ссылку на целевой объект (необязательная операция).

static Path createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs)

Создаёт новый каталог в указанном каталоге, используя заданный префикс для генерации его имени.

static Path createTempDirectory(String prefix, FileAttribute<?>... attrs)

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

static Path createTempFile(Path dir, String prefix, String suffix, FileAttribute<?>... attrs)

Создаёт новый пустой файл в указанном каталоге, используя заданные префикс и суффикс для генерации его имени.

static Path createTempFile(String prefix, String suffix, FileAttribute<?>... attrs)

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

static void delete(Path path)

Удаляет файл.

static boolean deleteIfExists(Path path)

Удаляет файл, если он существует.

static boolean exists(Path path, LinkOption... options)

Проверяет, существует ли файл.

static Stream<Path> find(Path start, int maxDepth, BiPredicate<Path,BasicFileAttributes> matcher, FileVisitOption... options)

Возвращает Stream, который заполняется лениво Path, путём поиска файлов в дереве файлов, укоренённом в заданном исходном файле.

static Object getAttribute(Path path, String attribute, LinkOption... options)

Считывает значение атрибута файла.

static <V extends FileAttributeView>
V
getFileAttributeView(Path path, Class<V> type, LinkOption... options)

Возвращает представление атрибута файла заданного типа.

static FileStore getFileStore(Path path)

Возвращает FileStore, представляющий хранилище файлов, где находится файл.

static FileTime getLastModifiedTime(Path path, LinkOption... options)

Возвращает время последнего изменения файла.

static UserPrincipal getOwner(Path path, LinkOption... options)

Возвращает владельца файла.

static Set<PosixFilePermission> getPosixFilePermissions(Path path, LinkOption... options)

Возвращает POSIX разрешения файла.

static boolean isDirectory(Path path, LinkOption... options)

Проверяет, является ли файл каталогом.

static boolean isExecutable(Path path)

Проверяет, может ли файл выполняться.

static boolean isHidden(Path path)

Определяет, считается ли файл скрытым.

static boolean isReadable(Path path)

Проверяет, может ли файл читаться.

static boolean isRegularFile(Path path, LinkOption... options)

Проверяет, является ли файл обычным файлом с непрозрачным содержимым.

static boolean isSameFile(Path path, Path path2)

Проверяет, указывают ли два пути на один и тот же файл.

static boolean isSymbolicLink(Path path)

Проверяет, является ли файл символической ссылкой.

static boolean isWritable(Path path)

Проверяет, может ли файл записываться.

static Stream<String> lines(Path path)

Считывает все строки из файла как Stream.

static Stream<String> lines(Path path, Charset cs)

Считывает все строки из файла как Stream.

static Stream<Path> list(Path dir)

Возвращает лениво заполняемый Stream, элементами которого являются записи в каталоге.

static Path move(Path source, Path target, CopyOption... options)

Перемещает или переименовывает файл в целевой файл.

static BufferedReader newBufferedReader(Path path)

Открывает файл для чтения, возвращая BufferedReader для эффективного чтения текста из файла.

static BufferedReader newBufferedReader(Path path, Charset cs)

Открывает файл для чтения, возвращая BufferedReader для эффективного чтения текста из файла.

static BufferedWriter newBufferedWriter(Path path, Charset cs, OpenOption... options)

Открывает или создаёт файл для записи, возвращая BufferedWriter для эффективной записи текста в файл.

static BufferedWriter newBufferedWriter(Path path, OpenOption... options)

Открывает или создаёт файл для записи, возвращая BufferedWriter для эффективной записи текста в файл.

static SeekableByteChannel newByteChannel(Path path, OpenOption... options)

Открывает или создаёт файл, возвращая доступный байтовый канал для доступа к файлу.

static SeekableByteChannel newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)

Открывает или создаёт файл, возвращая доступный байтовый канал для доступа к файлу.

static DirectoryStream<Path> newDirectoryStream(Path dir)

Открывает каталог, возвращая DirectoryStream для итерации по всем записям в каталоге.

static DirectoryStream<Path> newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter)

Открывает каталог, возвращая DirectoryStream для итерации по записям в каталоге.

static DirectoryStream<Path> newDirectoryStream(Path dir, String glob)

Открывает каталог, возвращая DirectoryStream для итерации по записям в каталоге.

static InputStream newInputStream(Path path, OpenOption... options)

Открывает файл, возвращая входной поток для чтения из файла.

static OutputStream newOutputStream(Path path, OpenOption... options)

Открывает или создаёт файл, возвращая выходной поток, который может использоваться для записи байтов в файл.

static boolean notExists(Path path, LinkOption... options)

Проверяет, не существует ли файл по этому пути.

static String probeContentType(Path path)

Определяет тип содержимого файла.

static byte[] readAllBytes(Path path)

Считывает все байты из файла.

static List<String> readAllLines(Path path)

Считывает все строки из файла.

static List<String> readAllLines(Path path, Charset cs)

Считывает все строки из файла.

static <A extends BasicFileAttributes>
A
readAttributes(Path path, Class<A> type, LinkOption... options)

Считывает атрибуты файла как операцию пакетной обработки.

static Map<String,Object> readAttributes(Path path, String attributes, LinkOption... options)

Считывает набор атрибутов файла как операцию пакетной обработки.

static Path readSymbolicLink(Path link)

Считывает целевой объект символической ссылки (необязательная операция).

static Path setAttribute(Path path, String attribute, Object value, LinkOption... options)

Устанавливает значение атрибута файла.

static Path setLastModifiedTime(Path path, FileTime time)

Обновляет атрибут времени последнего изменения файла.

static Path setOwner(Path path, UserPrincipal owner)

Обновляет владельца файла.

static Path setPosixFilePermissions(Path path, Set<PosixFilePermission> perms)

Устанавливает POSIX разрешения файла.

static long size(Path path)

Возвращает размер файла (в байтах).

static Stream<Path> walk(Path start, FileVisitOption... options)

Возвращает Stream, заполняемый лениво Path, обходя дерево файлов, укоренённое в заданном исходном файле.

static Stream<Path> walk(Path start, int maxDepth, FileVisitOption... options)

Возвращает Stream, заполняемый лениво Path, обходя дерево файлов, укоренённое в заданном исходном файле.

static Path walkFileTree(Path start, FileVisitor<? super Path> visitor)

Обходит дерево файлов.

static Path walkFileTree(Path start, Set<FileVisitOption> options, int maxDepth, FileVisitor<? super Path> visitor)

Обходит дерево файлов.

static Path write(Path path, byte[] bytes, OpenOption... options)

Записывает байты в файл.

static Path write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options)

Записывает строки текста в файл.

static Path write(Path path, Iterable<? extends CharSequence> lines, OpenOption... options)

Записывает строки текста в файл.

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

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

Методы

newInputStream

public static InputStream newInputStream(Path path,
                                         OpenOption... options)
                                  throws IOException

Открывает файл, возвращая поток ввода для чтения из файла. Поток не буферизован и не обязан поддерживать методы mark или reset. Поток безопасен для доступа нескольких потоков одновременно. Чтение начинается с начала файла. Будет ли возвращаемый поток асинхронно закрываемым и/или прерывимым сильно зависит от поставщика файловой системы и поэтому не определено.

Параметр options определяет, как открывается файл. Если опций нет, это эквивалентно открытию файла с опцией READ. В дополнение к опции READ, реализация может также поддерживать дополнительные опции, специфичные для неё.

Параметры:
path - путь к открываемому файлу
options - опции, определяющие, как открывается файл
Возвращает:
новый поток ввода
Исключение:
IllegalArgumentException - если указана недопустимая комбинация опций
UnsupportedOperationException - если указана неподдерживаемая опция
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkRead для проверки доступа к чтению файла.

newOutputStream

public static OutputStream newOutputStream(Path path,
                                           OpenOption... options)
                                    throws IOException

Открывает или создаёт файл, возвращая поток вывода, который может использоваться для записи байтов в файл. Результирующий поток не буферизован. Поток безопасен для доступа нескольких потоков одновременно. Будет ли возвращаемый поток асинхронно закрываемым и/или прерывимым сильно зависит от поставщика файловой системы и поэтому не определено.

Этот метод открывает или создает файл точно так же, как метод newByteChannel за исключением того, что опция READ может отсутствовать в массиве опций. Если опций нет, этот метод работает так, как будто присутствуют опции CREATE, TRUNCATE_EXISTING и WRITE. Другими словами, он открывает файл для записи, создавая файл, если он не существует, или изначально обрезая существующий regular-file до размера 0, если он существует.

Примеры использования:

Path path = ...

     // truncate and overwrite an existing file, or create the file if
     // it doesn't initially exist
     OutputStream out = Files.newOutputStream(path);

     // append to an existing file, fail if the file does not exist
     out = Files.newOutputStream(path, APPEND);

     // append to an existing file, create file if it doesn't initially exist
     out = Files.newOutputStream(path, CREATE, APPEND);

     // always create new file, failing if it already exists
     out = Files.newOutputStream(path, CREATE_NEW);
Параметры:
path - путь к открываемому или создаваемому файлу
options - опции, определяющие, как открывается файл
Возвращает:
новый поток вывода
Исключение:
IllegalArgumentException - если options содержит недопустимую комбинацию опций
UnsupportedOperationException - если указана неподдерживаемая опция
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkWrite для проверки доступа к записи файла. Метод checkDelete вызывается для проверки доступа к удалению, если файл открыт с опцией DELETE_ON_CLOSE.

newByteChannel

public static SeekableByteChannel newByteChannel(Path path,
                                                 Set<? extends OpenOption> options,
                                                 FileAttribute<?>... attrs)
                                          throws IOException

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

Параметр options определяет, как открывается файл. Опции READ и WRITE определяют, должен ли файл открываться для чтения и/или записи. Если ни одна опция (или опция APPEND) не указана, файл открывается для чтения. По умолчанию чтение или запись начинаются с начала файла.

В дополнение к READ и WRITE, могут быть присутствуют следующие опции:

Опция Описание
APPEND Если эта опция присутствует, файл открывается для записи, и каждый вызов метода канала write сначала перемещает позицию к концу файла, а затем записывает запрошенные данные. Будет ли перемещение позиции и запись данных выполняться в одной атомарной операции, зависит от системы и поэтому не определено. Эта опция не может использоваться совместно с опциями READ или TRUNCATE_EXISTING.
TRUNCATE_EXISTING Если эта опция присутствует, существующий файл обрезается до размера 0 байтов. Эта опция игнорируется при открытии файла только для чтения.
CREATE_NEW Если эта опция присутствует, создается новый файл, если файл уже существует или является символической ссылкой. При создании файла проверка существования файла и создание файла, если он не существует, атомарны по отношению к другим операциям с файловой системой. Эта опция игнорируется при открытии файла только для чтения.
CREATE Если эта опция присутствует, существующий файл открывается, если он существует, в противном случае создаётся новый файл. Эта опция игнорируется, если опция CREATE_NEW также присутствует или файл открывается только для чтения.
DELETE_ON_CLOSE При использовании этой опции реализация предпринимает лучшие усилия для удаления файла при закрытии методом close. Если метод close не вызывается, делается лучшая попытка удалить файл при завершении работы виртуальной машины Java.
SPARSE При создании нового файла эта опция является подсказкой, что новый файл будет разреженным. Эта опция игнорируется, если новый файл не создается.
SYNC Требует, чтобы каждое обновление содержимого или метаданных файла синхронно записывалось на базовое хранилище устройства. (см. Целостность синхронизированного ввода-вывода файлов).
DSYNC Требует, чтобы каждое обновление содержимого файла синхронно записывалось на базовое хранилище устройства. (см. Целостность синхронизированного ввода-вывода файлов).

Реализация может также поддерживать дополнительные опции, специфичные для неё.

Параметр attrs является необязательным file-attributes для атомарной установки при создании нового файла.

В случае поставщика по умолчанию, возвращаемый доступный к позиционированию байтовый канал является FileChannel.

Примеры использования:

Path path = ...

     // open file for reading
     ReadableByteChannel rbc = Files.newByteChannel(path, EnumSet.of(READ)));

     // open file for writing to the end of an existing file, creating
     // the file if it doesn't already exist
     WritableByteChannel wbc = Files.newByteChannel(path, EnumSet.of(CREATE,APPEND));

     // create file with initial permissions, opening it for both reading and writing
      FileAttribute<Set<PosixFilePermission>> perms = ...
     SeekableByteChannel sbc = Files.newByteChannel(path, EnumSet.of(CREATE_NEW,READ,WRITE), perms);
Параметры:
path - путь к открываемому или создаваемому файлу
options - опции, определяющие, как открывается файл
attrs - необязательный список атрибутов файла для атомарной установки при создании файла
Возвращает:
новый доступный к позиционированию байтовый канал
Исключение:
IllegalArgumentException - если набор содержит недопустимую комбинацию опций
UnsupportedOperationException - если указана неподдерживаемая опция открытия или массив содержит атрибуты, которые не могут быть атомарно установлены при создании файла
FileAlreadyExistsException - если файл с таким именем уже существует, и опция CREATE_NEW указана (необязательное специфическое исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkRead для проверки доступа к чтению пути, если файл открыт для чтения. Метод checkWrite вызывается для проверки доступа к записи пути, если файл открыт для записи. Метод checkDelete вызывается для проверки доступа к удалению, если файл открыт с опцией DELETE_ON_CLOSE.
См. также:
FileChannel.open(Path,Set,FileAttribute[])

newByteChannel

public static SeekableByteChannel newByteChannel(Path path,
                                                 OpenOption... options)
                                          throws IOException

Открывает или создаёт файл, возвращая доступный к позиционированию байтовый канал для доступа к файлу.

Этот метод открывает или создаёт файл точно так же, как метод newByteChannel.

Параметры:
path - путь к файлу для открытия или создания
options - параметры, определяющие способ открытия файла
Возвращает:
новый доступный канал байтов
Исключения:
IllegalArgumentException - если задано недопустимое сочетание параметров
UnsupportedOperationException - если указан неподдерживаемый параметр открытия
FileAlreadyExistsException - если файл с таким именем уже существует, и задан параметр CREATE_NEW (возможное конкретное исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, метод checkRead вызывается для проверки доступа к чтению пути, если файл открыт для чтения. Метод checkWrite вызывается для проверки доступа к записи пути, если файл открыт для записи. Метод checkDelete вызывается для проверки доступа к удалению, если файл открыт с параметром DELETE_ON_CLOSE.
См. также:
FileChannel.open(Path,OpenOption[])

newDirectoryStream

public static DirectoryStream<Path> newDirectoryStream(Path dir)
                                                throws IOException

Открывает каталог, возвращая DirectoryStream для итерации по всем элементам в каталоге. Элементы, возвращаемые итератором потока каталога iterator, имеют тип Path, каждый из которых представляет собой элемент в каталоге. Объекты Path получаются как если бы путем resolving имени элемента каталога относительно dir.

При отсутствии конструкции try-with-resources, метод close потока каталога должен быть вызван после завершения итерации, чтобы освободить любые ресурсы, удерживаемые для открытого каталога.

Если реализация поддерживает операции над элементами в каталоге, которые выполняются без гонок, то возвращаемый поток каталога является SecureDirectoryStream.

Параметры:
dir - путь к каталогу
Возвращает:
новый и открытый объект DirectoryStream
Исключения:
NotDirectoryException - если файл не может быть открыт, так как он не является каталогом (возможное конкретное исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, метод checkRead вызывается для проверки доступа к чтению каталога.

newDirectoryStream

public static DirectoryStream<Path> newDirectoryStream(Path dir,
                                                       String glob)
                                                throws IOException

Открывает каталог, возвращая DirectoryStream для итерации по элементам в каталоге. Элементы, возвращаемые итератором потока каталога iterator, имеют тип Path, каждый из которых представляет собой элемент в каталоге. Объекты Path получаются как если бы путем resolving имени элемента каталога относительно dir. Элементы, возвращаемые итератором, отфильтровываются по соответствию строкового представления их имён файлов заданному шаблону globbing.

Например, предположим, что мы хотим пройти по файлам, оканчивающимся на ".java", в каталоге:

Path dir = ...
     try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.java")) {
         :
     }

Шаблон globbing задаётся методом getPathMatcher.

При отсутствии конструкции try-with-resources, метод close потока каталога должен быть вызван после завершения итерации, чтобы освободить любые ресурсы, удерживаемые для открытого каталога.

Если реализация поддерживает операции над элементами в каталоге, которые выполняются без гонок, то возвращаемый поток каталога является SecureDirectoryStream.

Параметры:
dir - путь к каталогу
glob - шаблон globbing
Возвращает:
новый и открытый объект DirectoryStream
Исключения:
PatternSyntaxException - если шаблон недействителен
NotDirectoryException - если файл не может быть открыт, так как он не является каталогом (возможное конкретное исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, метод checkRead вызывается для проверки доступа к чтению каталога.

newDirectoryStream

public static DirectoryStream<Path> newDirectoryStream(Path dir,
                                                       DirectoryStream.Filter<? super Path> filter)
                                                throws IOException

Открывает каталог, возвращая DirectoryStream для итерации по элементам в каталоге. Элементы, возвращаемые итератором потока каталога iterator, имеют тип Path, каждый из которых представляет собой элемент в каталоге. Объекты Path получаются как если бы путем resolving имени элемента каталога относительно dir. Элементы, возвращаемые итератором, отфильтровываются заданным filter.

При отсутствии конструкции try-with-resources, метод close потока каталога должен быть вызван после завершения итерации, чтобы освободить любые ресурсы, удерживаемые для открытого каталога.

Если фильтр завершается из-за необработанной ошибки или исключения времени выполнения, то оно передаётся в метод hasNext или next. Если брошено исключение IOException, это приводит к тому, что метод hasNext или next бросает DirectoryIteratorException с IOException в качестве причины.

Если реализация поддерживает операции над элементами в каталоге, которые выполняются без гонок, то возвращаемый поток каталога является SecureDirectoryStream.

Пример использования: Предположим, мы хотим пройти по файлам в каталоге, которые больше 8К.

DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<Path>() {
         public boolean accept(Path file) throws IOException {
             return (Files.size(file) > 8192L);
         }
     };
     Path dir = ...
     try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, filter)) {
         :
     }
Параметры:
dir - путь к каталогу
filter - фильтр потока каталога
Возвращает:
новый и открытый объект DirectoryStream
Исключения:
NotDirectoryException - если файл не может быть открыт, так как он не является каталогом (возможное конкретное исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, метод checkRead вызывается для проверки доступа к чтению каталога.

createFile

public static Path createFile(Path path,
                              FileAttribute<?>... attrs)
                       throws IOException

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

Параметр attrs — необязательный file-attributes, чтобы атомарно установить при создании файла. Каждый атрибут идентифицируется по его name. Если в массиве содержится более одного атрибута с одинаковым именем, все, кроме последнего, игнорируются.

Параметры:
path - путь к файлу для создания
attrs - необязательный список атрибутов файла, которые должны быть атомарно установлены при создании файла
Возвращает:
файл
Исключения:
UnsupportedOperationException - если массив содержит атрибут, который не может быть установлен атомарно при создании файла
FileAlreadyExistsException - если файл с таким именем уже существует (возможное конкретное исключение)
IOException - если произошла ошибка ввода-вывода или родительский каталог не существует
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, метод checkWrite вызывается для проверки доступа к записи в новый файл.

createDirectory

public static Path createDirectory(Path dir,
                                   FileAttribute<?>... attrs)
                            throws IOException

Создаёт новый каталог. Проверка существования файла и создание каталога, если он не существует, — это одна атомная операция относительно всех других операций файловой системы, которые могут повлиять на каталог. Метод createDirectories следует использовать, когда необходимо предварительно создать все несуществующие родительские каталоги.

Параметр attrs — необязательный file-attributes, чтобы атомарно установить при создании каталога. Каждый атрибут идентифицируется по его name. Если в массиве содержится более одного атрибута с одинаковым именем, все, кроме последнего, игнорируются.

Параметры:
dir - каталог для создания
attrs - необязательный список атрибутов файла, которые необходимо установить атомарно при создании каталога
Возвращает:
каталог
Выбрасывает:
UnsupportedOperationException - если массив содержит атрибут, который нельзя установить атомарно при создании каталога
FileAlreadyExistsException - если каталог не может быть создан, потому что файл с таким именем уже существует (необязательное специфическое исключение)
IOException - если произошла ошибка ввода-вывода или родительский каталог не существует
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkWrite для проверки доступа к записи в новый каталог.

createDirectories

public static Path createDirectories(Path dir,
                                     FileAttribute<?>... attrs)
                              throws IOException

Создаёт каталог, сначала создавая все отсутствующие родительские каталоги. В отличие от метода createDirectory, исключение не выбрасывается, если каталог не может быть создан, потому что он уже существует.

Параметр attrs является необязательным списком file-attributes, которые нужно установить атомарно при создании отсутствующих каталогов. Каждый атрибут файла идентифицируется по его name. Если в массиве содержится более одного атрибута с одинаковым именем, то все, кроме последнего, будут проигнорированы.

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

Параметры:
dir - каталог для создания
attrs - необязательный список атрибутов файла, которые нужно установить атомарно при создании каталога
Возвращает:
каталог
Выбрасывает:
UnsupportedOperationException - если массив содержит атрибут, который нельзя установить атомарно при создании каталога
FileAlreadyExistsException - если dir существует, но не является каталогом (необязательное специфическое исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - в случае с поставщиком по умолчанию и установленным менеджером безопасности, метод checkWrite вызывается перед попыткой создания каталога, и метод checkRead вызывается для каждого родительского каталога, который проверяется. Если dir не является абсолютным путём, то может потребоваться вызвать его toAbsolutePath для получения абсолютного пути. Это может вызвать метод менеджера безопасности checkPropertyAccess для проверки доступа к системной переменной user.dir

createTempFile

public static Path createTempFile(Path dir,
                                  String prefix,
                                  String suffix,
                                  FileAttribute<?>... attrs)
                           throws IOException

Создаёт новый пустой файл в указанном каталоге, используя заданные префикс и суффикс для генерации его имени. Результирующий Path связан с тем же FileSystem, что и заданный каталог.

Подробности о том, как строится имя файла, зависят от реализации и поэтому не специфицированы. По возможности prefix и suffix используются для построения кандидатов в имена в том же стиле, что и метод File.createTempFile(String,String,File).

Как и методы File.createTempFile, этот метод является лишь частью механизма временных файлов. При использовании в качестве рабочих файлов, результирующий файл может быть открыт с использованием опции DELETE_ON_CLOSE, чтобы файл был удалён при вызове соответствующего метода close. В качестве альтернативы можно использовать shutdown-hook или механизм File.deleteOnExit() для автоматического удаления файла.

Параметр attrs является необязательным file-attributes для атомарной установки при создании файла. Каждый атрибут идентифицируется по его name. Если в массиве содержится более одного атрибута с одинаковым именем, то все, кроме последнего, будут проигнорированы. Если атрибуты файла не указаны, результирующий файл может иметь более строгие разрешения доступа по сравнению с файлами, созданными методом File.createTempFile(String,String,File).

Параметры:
dir - путь к каталогу, в котором должен быть создан файл
prefix - строка-префикс, используемая для генерации имени файла; может быть null
suffix - строка-суффикс, используемая для генерации имени файла; может быть null, в таком случае используется ".tmp"
attrs - необязательный список атрибутов файла, которые нужно установить атомарно при создании файла
Возвращает:
путь к только что созданному файлу, который не существовал до вызова этого метода
Выбрасывает:
IllegalArgumentException - если префикс или суффикс не могут быть использованы для генерации имени файла-кандидата
UnsupportedOperationException - если массив содержит атрибут, который нельзя установить атомарно при создании каталога
IOException - если произошла ошибка ввода-вывода или dir не существует
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, метод checkWrite вызывается для проверки доступа к записи в файл.

createTempFile

public static Path createTempFile(String prefix,
                                  String suffix,
                                  FileAttribute<?>... attrs)
                           throws IOException

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

Этот метод работает точно так же, как метод createTempFile(Path,String,String,FileAttribute[]), если параметр dir является каталогом временных файлов.

Параметры:
prefix - строка-префикс, используемая для генерации имени файла; может быть null
suffix - строка-суффикс, используемая для генерации имени файла; может быть null, в таком случае используется ".tmp"
attrs - необязательный список атрибутов файла, которые нужно установить атомарно при создании файла
Возвращает:
путь к только что созданному файлу, который не существовал до вызова этого метода
Выбрасывает:
IllegalArgumentException - если префикс или суффикс не могут быть использованы для генерации имени файла-кандидата
UnsupportedOperationException - если массив содержит атрибут, который нельзя установить атомарно при создании каталога
IOException - если произошла ошибка ввода-вывода или каталог временных файлов не существует
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, метод checkWrite вызывается для проверки доступа к записи в файл.

createTempDirectory

public static Path createTempDirectory(Path dir,
                                       String prefix,
                                       FileAttribute<?>... attrs)
                                throws IOException

Создаёт новый каталог в указанном каталоге, используя заданный префикс для генерации его имени. Результирующий Path связан с тем же FileSystem, что и заданный каталог.

Подробности о том, как строится имя каталога, зависят от реализации и поэтому не специфицированы. По возможности prefix используется для построения кандидатов в имена.

Как и методы createTempFile, этот метод является лишь частью механизма временных файлов. shutdown-hook или механизм File.deleteOnExit() могут быть использованы для автоматического удаления каталога.

Параметр attrs является необязательным file-attributes для атомарной установки при создании каталога. Каждый атрибут идентифицируется по его name. Если в массиве содержится более одного атрибута с одинаковым именем, все, кроме последнего, будут проигнорированы.

Параметры:
dir - путь к каталогу, в котором должен быть создан каталог
prefix - строка-префикс, используемая для генерации имени каталога; может быть null
attrs - необязательный список атрибутов файла, которые нужно установить атомарно при создании каталога
Возвращает:
путь к только что созданному каталогу, который не существовал до вызова этого метода
Выбрасывает:
IllegalArgumentException - если префикс не может быть использован для генерации имени каталога-кандидата
UnsupportedOperationException - если массив содержит атрибут, который нельзя установить атомарно при создании каталога
IOException - если произошла ошибка ввода-вывода или dir не существует
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, метод checkWrite вызывается для проверки доступа к записи при создании каталога.

createTempDirectory

public static Path createTempDirectory(String prefix,
                                       FileAttribute<?>... attrs)
                                throws IOException

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

Этот метод работает точно так же, как метод createTempDirectory(Path,String,FileAttribute[]), если параметр dir является каталогом временных файлов.

Параметры:
prefix - префиксная строка, используемая для генерации имени каталога; может быть null
attrs - необязательный список атрибутов файла, которые необходимо установить атомарно при создании каталога
Возвращает:
путь к вновь созданному каталогу, который не существовал до вызова этого метода
Исключения:
IllegalArgumentException - если префикс нельзя использовать для генерации имени каталога-кандидата
UnsupportedOperationException - если массив содержит атрибут, который нельзя установить атомарно при создании каталога
IOException - если произошла ошибка ввода-вывода или временный каталог не существует
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, метод checkWrite вызывается для проверки доступа на запись при создании каталога.

createSymbolicLink

public static Path createSymbolicLink(Path link,
                                      Path target,
                                      FileAttribute<?>... attrs)
                               throws IOException

Создаёт символическую ссылку на целевой объект (необязательная операция).

Параметр target — целевой объект ссылки. Это может быть абсолютный absolute или относительный путь, который может не существовать. Если целевой путь является относительным, то файловые операции с результирующей ссылкой будут относительны к пути ссылки.

Параметр attrs — необязательные attributes атрибуты, которые необходимо установить атомарно при создании ссылки. Каждый атрибут идентифицируется по своему name. Если в массиве указано более одного атрибута с одинаковым именем, то все, кроме последнего, будут проигнорированы.

Если символические ссылки поддерживаются, но основной FileStore не поддерживает символические ссылки, то может произойти сбой с исключением IOException. Кроме того, некоторые операционные системы могут потребовать, чтобы виртуальная машина Java запускалась с реализационно-специфическими привилегиями для создания символических ссылок, в этом случае этот метод может выбросить IOException.

Параметры:
link - путь к создаваемой символической ссылке
target - целевой объект символической ссылки
attrs - массив атрибутов, которые необходимо установить атомарно при создании символической ссылки
Возвращает:
путь к символической ссылке
Исключения:
UnsupportedOperationException - если реализация не поддерживает символические ссылки или массив содержит атрибут, который нельзя установить атомарно при создании символической ссылки
FileAlreadyExistsException - если файл с таким именем уже существует (возможное специфическое исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, он отказывается предоставить LinkPermission("symbolic") или его метод checkWrite отказывает в доступе на запись к пути символической ссылки.

createLink

public static Path createLink(Path link,
                              Path existing)
                       throws IOException

Создаёт новую ссылку (запись в каталоге) для существующего файла (необязательная операция).

Параметр link указывает на запись в каталоге, которую нужно создать. Параметр existing — путь к существующему файлу. Этот метод создаёт новую запись в каталоге для файла, так что к нему можно получить доступ, используя link в качестве пути. В некоторых файловых системах это известно как создание "жёсткой ссылки". Сохраняются ли атрибуты файла для файла или для каждой записи в каталоге, зависит от файловой системы и поэтому не оговаривается. Обычно файловая система требует, чтобы все ссылки (записи в каталоге) для файла находились в одной файловой системе. Кроме того, на некоторых платформах виртуальная машина Java может потребовать запускаться с реализационно-специфическими привилегиями для создания жёстких ссылок или ссылок на каталоги.

Параметры:
link - ссылка (запись в каталоге) для создания
existing - путь к существующему файлу
Возвращает:
путь к ссылке (записи в каталоге)
Исключения:
UnsupportedOperationException - если реализация не поддерживает добавление существующего файла в каталог
FileAlreadyExistsException - если запись не может быть создана, потому что файл с таким именем уже существует (возможное специфическое исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, он отказывается предоставить LinkPermission("hard") или его метод checkWrite отказывает в доступе на запись к ссылке или существующему файлу.

delete

public static void delete(Path path)
                   throws IOException

Удаляет файл.

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

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

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

Параметры:
path - путь к файлу, который нужно удалить
Исключения:
NoSuchFileException - если файл не существует (возможное специфическое исключение)
DirectoryNotEmptyException - если файл является каталогом и не может быть удалён, потому что каталог не пуст (возможное специфическое исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, метод SecurityManager.checkDelete(String) вызывается для проверки доступа на удаление файла.

deleteIfExists

public static boolean deleteIfExists(Path path)
                              throws IOException

Удаляет файл, если он существует.

Как и в методе delete(Path), реализация может потребовать проверить, является ли файл каталогом. Следовательно, этот метод может не быть атомарным по отношению к другим файловым операциям. Если файл является символической ссылкой, то удаляется сама символическая ссылка, а не конечная цель ссылки.

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

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

Параметры:
path - путь к файлу, который нужно удалить
Возвращает:
true если файл был удалён этим методом; false если файл не был удалён, потому что он не существовал
Исключения:
DirectoryNotEmptyException - если файл является каталогом и не может быть удалён, потому что каталог не пуст (возможное специфическое исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, метод SecurityManager.checkDelete(String) вызывается для проверки доступа на удаление файла.

copy

public static Path copy(Path source,
                        Path target,
                        CopyOption... options)
                 throws IOException

Копирует файл в целевой файл.

Этот метод копирует файл в целевой файл с параметром options, определяющим способ выполнения копирования. По умолчанию копирование завершается ошибкой, если целевой файл уже существует или является символической ссылкой, за исключением случаев, когда исходный и целевой файлы являются same файлом, в этом случае метод завершается без копирования файла. Атрибуты файла не обязательны для копирования в целевой файл. Если поддерживаются символические ссылки, и файл является символической ссылкой, то копируется конечный объект ссылки. Если файл является каталогом, то создается пустой каталог в целевом расположении (записи в каталоге не копируются). Этот метод может использоваться с методом walkFileTree для копирования каталога и всех записей в каталоге или всей деревовидной структуры файлов, если это необходимо.

Параметр options может включать любые из следующих параметров:

Вариант Описание
REPLACE_EXISTING Если целевой файл существует, то целевой файл заменяется, если он не является непустым каталогом. Если целевой файл существует и является символической ссылкой, то сама символическая ссылка, а не объект, на который она указывает, заменяется.
COPY_ATTRIBUTES Попытка скопировать атрибуты файла, связанные с этим файлом, в целевой файл. Точные атрибуты файла, которые копируются, зависят от платформы и файловой системы, поэтому не определены. В минимальном случае last-modified-time копируется в целевой файл, если это поддерживается как исходным, так и целевым файловыми хранилищами. Копирование временных меток файла может привести к потере точности.
NOFOLLOW_LINKS Символические ссылки не отслеживаются. Если файл является символической ссылкой, то копируется сама символическая ссылка, а не объект, на который она указывает. Реализация может не поддерживать копирование атрибутов файла в новую ссылку. Другими словами, параметр COPY_ATTRIBUTES может быть проигнорирован при копировании символической ссылки.

Реализация этого интерфейса может поддерживать дополнительные параметры, специфичные для реализации.

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

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

Path source = ...
     Path newdir = ...
     Files.copy(source, newdir.resolve(source.getFileName());
Параметры:
source - путь к файлу для копирования
target - путь к целевому файлу (может быть связан с другим поставщиком, чем путь к исходному файлу)
options - параметры, определяющие, как должно быть выполнено копирование
Возвращает:
путь к целевому файлу
Исключения:
UnsupportedOperationException - если массив содержит параметр копирования, который не поддерживается
FileAlreadyExistsException - если целевой файл существует, но не может быть заменён, потому что параметр REPLACE_EXISTING не указан (необязательное специфическое исключение)
DirectoryNotEmptyException - параметр REPLACE_EXISTING указан, но файл не может быть заменён, потому что это непустой каталог (необязательное специфическое исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования по умолчанию поставщика и установленного менеджера безопасности вызывается метод checkRead для проверки доступа для чтения к исходному файлу, метод checkWrite вызывается для проверки доступа для записи к целевому файлу. Если копируется символическая ссылка, менеджер безопасности вызывается для проверки LinkPermission("symbolic").

move

public static Path move(Path source,
                        Path target,
                        CopyOption... options)
                 throws IOException

Перемещение или переименование файла в целевой файл.

По умолчанию этот метод пытается переместить файл в целевой файл, завершаясь ошибкой, если целевой файл существует, за исключением случаев, когда исходный и целевой файлы являются same файлом, в этом случае этот метод не имеет эффекта. Если файл является символической ссылкой, то перемещается сама символическая ссылка, а не объект, на который она указывает. Этот метод может вызываться для перемещения пустого каталога. В некоторых реализациях каталог имеет записи для специальных файлов или ссылок, которые создаются при создании каталога. В таких реализациях каталог считается пустым, когда существуют только специальные записи. Когда вызывается для перемещения каталога, который не пуст, то каталог перемещается, если нет необходимости перемещать записи в каталоге. Например, переименование каталога в той же FileStore обычно не требует перемещения записей в каталоге. Когда перемещение каталога требует перемещения его записей, этот метод завершается ошибкой (выбрасывая исключение IOException). Для перемещения деревовидной структуры файлов может потребоваться копирование, а не перемещение каталогов, и это можно сделать, используя метод copy в сочетании с утилитарным методом Files.walkFileTree.

Параметр options может включать любые из следующих параметров:

Вариант Описание
REPLACE_EXISTING Если целевой файл существует, то целевой файл заменяется, если он не является непустым каталогом. Если целевой файл существует и является символической ссылкой, то сама символическая ссылка, а не объект, на который она указывает, заменяется.
ATOMIC_MOVE Перемещение выполняется как атомарная операция файловой системы, и все остальные параметры игнорируются. Если целевой файл существует, то в зависимости от реализации существующий файл может быть заменён или метод завершится ошибкой, выбросив исключение IOException. Если перемещение не может быть выполнено как атомарная операция файловой системы, то выбрасывается исключение AtomicMoveNotSupportedException. Это может произойти, например, когда целевое расположение находится на другой FileStore и потребуется скопировать файл, или целевое расположение связано с другим поставщиком, чем этот объект.

Реализация этого интерфейса может поддерживать дополнительные параметры, специфичные для реализации.

При перемещении файла будет скопирована last-modified-time в целевой файл, если это поддерживается как исходным, так и целевым файловыми хранилищами. Копирование временных меток файла может привести к потере точности. Реализация также может попытаться скопировать другие атрибуты файла, но не обязана завершиться ошибкой, если атрибуты файла не могут быть скопированы. Когда перемещение выполняется как неатомарная операция, и выбрасывается исключение IOException, то состояние файлов не определено. Исходный файл и целевой файл могут оба существовать, целевой файл может быть неполным или некоторые его атрибуты могут не быть скопированы из исходного файла.

Примеры использования: Предположим, что мы хотим переименовать файл в «newname», сохранив файл в том же каталоге:

Path source = ...
     Files.move(source, source.resolveSibling("newname"));
В качестве альтернативы, предположим, что мы хотим переместить файл в новый каталог, сохранив то же имя файла, и заменив любой существующий файл с таким же именем в каталоге:
Path source = ...
     Path newdir = ...
     Files.move(source, newdir.resolve(source.getFileName()), REPLACE_EXISTING);
Параметры:
source - путь к перемещаемому файлу
target - путь к целевому файлу (может быть связан с другим поставщиком, чем путь к исходному файлу)
options - параметры, определяющие, как должно быть выполнено перемещение
Возвращает:
путь к целевому файлу
Исключения:
UnsupportedOperationException - если массив содержит параметр копирования, который не поддерживается
FileAlreadyExistsException - если целевой файл существует, но не может быть заменён, потому что параметр REPLACE_EXISTING не указан (необязательное специфическое исключение)
DirectoryNotEmptyException - параметр REPLACE_EXISTING указан, но файл не может быть заменён, потому что это непустой каталог (необязательное специфическое исключение)
AtomicMoveNotSupportedException - если в массиве параметров указан параметр ATOMIC_MOVE, но файл не может быть перемещён как атомарная операция файловой системы.
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования по умолчанию поставщика и установленного менеджера безопасности вызывается метод checkWrite для проверки доступа для записи как к исходному, так и к целевому файлу.

readSymbolicLink

public static Path readSymbolicLink(Path link)
                             throws IOException

Чтение объекта, на который указывает символическая ссылка (необязательная операция).

Если файловая система поддерживает символические ссылки, то этот метод используется для чтения объекта, на который указывает ссылка, завершаясь ошибкой, если файл не является символической ссылкой. Объект, на который указывает ссылка, может не существовать. Возвращаемый Path объект будет связан с той же файловой системой, что и link.

Параметры:
link - путь к символической ссылке
Возвращает:
объект Path, представляющий объект, на который указывает ссылка
Исключения:
UnsupportedOperationException - если реализация не поддерживает символические ссылки
NotLinkException - если объект, на который указывает ссылка, не может быть прочитан по другим причинам, потому что файл не является символической ссылкой (необязательное специфическое исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования по умолчанию поставщика и установленного менеджера безопасности проверяется, что для FilePermission предоставлено действие "readlink" для чтения ссылки.

getFileStore

public static FileStore getFileStore(Path path)
                              throws IOException

Возвращает FileStore, представляющий файловое хранилище, в котором находится файл.

После получения ссылки на FileStore реализация может определить, зависят ли операции над возвращенным FileStore, или объектами FileStoreAttributeView, полученными из него, от существования файла. В частности, поведение не определено в случае, если файл удален или перемещен в другое файловое хранилище.

Параметры:
path - путь к файлу
Возвращает:
хранилище, в котором хранится файл
Исключения:
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования стандартного поставщика и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа на чтение к файлу, а также проверяется RuntimePermission ("getFileStoreAttributes")

isSameFile

public static boolean isSameFile(Path path,
                                 Path path2)
                          throws IOException

Проверяет, указывают ли два пути на один и тот же файл.

Если оба объекта Path equal, то этот метод возвращает true без проверки существования файла. Если два объекта Path связаны с разными поставщиками, то этот метод возвращает false. В противном случае этот метод проверяет, указывают ли оба объекта Path на один и тот же файл, и, в зависимости от реализации, может потребоваться открыть или получить доступ к обоим файлам.

Если файловая система и файлы остаются статическими, то этот метод реализует отношение эквивалентности для ненулевых Paths.

  • Он рефлексивен: для Path f, isSameFile(f,f) должно вернуть true.
  • Он симметричен: для двух Paths f и g, isSameFile(f,g) будет равно isSameFile(g,f).
  • Он транзитивен: для трех Paths f, g, и h, если isSameFile(f,g) возвращает true и isSameFile(g,h) возвращает true, то isSameFile(f,h) вернет true.
Параметры:
path - один путь к файлу
path2 - другой путь
Возвращает:
true тогда и только тогда, когда оба пути указывают на один и тот же файл
Исключения:
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае стандартного поставщика и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа на чтение к обоим файлам.
См. также:
BasicFileAttributes.fileKey()

isHidden

public static boolean isHidden(Path path)
                        throws IOException

Определяет, является ли файл скрытым. Точное определение скрытого файла зависит от платформы или поставщика. Например, в UNIX-системах файл считается скрытым, если его имя начинается с точки ('.'). В Windows файл считается скрытым, если он не является каталогом и атрибут DOS hidden установлен.

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

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

probeContentType

public static String probeContentType(Path path)
                               throws IOException

Определяет тип содержимого файла.

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

Каждая сессия виртуальной машины Java поддерживает глобальный список детекторов типов файлов. Установленные детекторы типов файлов загружаются с помощью механизма загрузки поставщиков, определенного классом ServiceLoader. Установленные детекторы типов файлов загружаются с помощью системного загрузчика классов. Если системный загрузчик классов не найден, используется расширенный загрузчик классов; если расширенный загрузчик классов не найден, используется загрузчик bootstrap. Детекторы типов файлов обычно устанавливаются путем размещения их в JAR-файле в пути приложения или в каталоге расширений. JAR-файл содержит файл конфигурации поставщика с именем java.nio.file.spi.FileTypeDetector в каталоге ресурсов META-INF/services, который содержит один или несколько полных квалифицированных имен конкретного подкласса FileTypeDetector , имеющего конструктор без параметров. Если процесс поиска или инициализации установленных детекторов типов файлов завершается ошибкой, выбрасывается неопределенная ошибка. Порядок поиска установленных поставщиков зависит от реализации.

Возвращаемое значение этого метода представляет собой строковое представление значения типа содержимого MIME (Multipurpose Internet Mail Extensions), определенного в RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. Строка гарантированно может быть обработана согласно грамматике RFC.

Параметры:
path - путь к файлу для проверки
Возвращает:
Тип содержимого файла или null если тип содержимого определить невозможно
Исключения:
IOException - если произошла ошибка ввода-вывода
SecurityException - Если установлен менеджер безопасности и он запрещает неопределенное разрешение, необходимое для реализации детектора типов файлов.

getFileAttributeView

public static <V extends FileAttributeView> V getFileAttributeView(Path path,
                                                                   Class<V> type,
                                                                   LinkOption... options)

Возвращает представление атрибутов файла заданного типа.

Представление атрибутов файла предоставляет доступ для чтения или записи набора атрибутов файла. Этот метод предназначен для использования в тех случаях, когда представление атрибутов файла определяет безопасные методы для чтения или записи атрибутов файла. Параметр type - это требуемый тип представления атрибутов файла, и метод возвращает экземпляр этого типа, если он поддерживается. Тип BasicFileAttributeView поддерживает доступ к основным атрибутам файла. Вызов этого метода для выбора представления атрибутов файла данного типа всегда вернет экземпляр этого класса.

Массив options может использоваться для указания того, как обрабатывать символические ссылки в полученном представлении атрибутов файла в случае, если файл является символической ссылкой. По умолчанию, символические ссылки следуют. Если присутствует опция NOFOLLOW_LINKS, то символические ссылки не следуют. Эта опция игнорируется реализациями, которые не поддерживают символические ссылки.

Пример использования: Предположим, что нам нужно прочитать или установить ACL файла, если он поддерживается:

Path path = ...
     AclFileAttributeView view = Files.getFileAttributeView(path, AclFileAttributeView.class);
     if (view != null) {
         List<AclEntry> acl = view.getAcl();
         :
     }
Параметры типа:
V - Тип FileAttributeView
Параметры:
path - путь к файлу
type - объект Class соответствующий представлению атрибутов файла
options - опции, указывающие, как обрабатывать символические ссылки
Возвращает:
представление атрибутов файла указанного типа, или null если тип представления атрибутов недоступен

readAttributes

public static <A extends BasicFileAttributes> A readAttributes(Path path,
                                                               Class<A> type,
                                                               LinkOption... options)
                                                        throws IOException

Читает атрибуты файла как операцию сжатия.

Параметр type - это требуемый тип атрибутов, и этот метод возвращает экземпляр этого типа, если он поддерживается. Все реализации поддерживают базовый набор атрибутов файлов, поэтому вызов этого метода с параметром type типа BasicFileAttributes.class не выбросит UnsupportedOperationException.

Массив options может использоваться для указания, как обрабатывать символические ссылки в случае, если файл является символической ссылкой. По умолчанию символические ссылки следуют, и читаются атрибуты файла конечной цели ссылки. Если опция NOFOLLOW_LINKS присутствует, то символические ссылки не следуют.

Зависит от реализации, читаются ли все атрибуты файла как атомная операция по отношению к другим операциям с файловой системой.

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

Path path = ...
    BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class);
В качестве альтернативы, предположим, что нам нужно прочитать атрибуты файла POSIX, не следуя символическим ссылкам:
PosixFileAttributes attrs = Files.readAttributes(path, PosixFileAttributes.class, NOFOLLOW_LINKS);
Параметры типа:
A - Тип BasicFileAttributes
Параметры:
path - путь к файлу
type - тип Class атрибутов файла, которые требуется прочитать
options - опции, указывающие, как обрабатывать символические ссылки
Возвращает:
атрибуты файла
Исключения:
UnsupportedOperationException - если атрибуты заданного типа не поддерживаются
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования стандартного поставщика и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа на чтение к файлу. Если этот метод вызывается для чтения защищенных атрибутов, менеджер безопасности может вызвать дополнительные проверки разрешений.

setAttribute

public static Path setAttribute(Path path,
                                String attribute,
                                Object value,
                                LinkOption... options)
                         throws IOException

Устанавливает значение атрибута файла.

Параметр attribute определяет атрибут, который нужно установить, и имеет вид:

[имя-представления:]имя-атрибута
где квадратные скобки [...] обозначают необязательную часть, а символ ':' — сам себя.

имя-представления — это name представления FileAttributeView, которое идентифицирует набор атрибутов файла. Если не указано, по умолчанию используется "basic", имя представления атрибутов файла, которое определяет базовый набор атрибутов файла, общий для многих файловых систем. имя-атрибута — это имя атрибута в наборе.

Массив options может использоваться для указания обработки символических ссылок в случае, если файл является символической ссылкой. По умолчанию, символические ссылки следуют, и атрибут файла конечного целевого объекта ссылки устанавливается. Если присутствует опция NOFOLLOW_LINKS, то символические ссылки не следуют.

Пример использования: Предположим, мы хотим установить атрибут DOS "скрытый":

Path path = ...
    Files.setAttribute(path, "dos:hidden", true);
Параметры:
path — путь к файлу
attribute — атрибут для установки
value — значение атрибута
options — опции, указывающие, как обрабатывать символические ссылки
Возвращает:
параметр path
Выбрасывает:
UnsupportedOperationException — если представление атрибута недоступно
IllegalArgumentException — если имя атрибута не указано, или не распознано, или значение атрибута имеет правильный тип, но неподходящее значение
ClassCastException — если значение атрибута не имеет ожидаемого типа или является коллекцией, содержащей элементы, не имеющие ожидаемого типа
IOException — если произошла ошибка ввода-вывода
SecurityException — в случае использования провайдера по умолчанию и установленного менеджера безопасности, его метод checkWrite отказывается предоставить доступ к записи в файл. Если этот метод вызван для установки атрибутов, чувствительных к безопасности, то менеджер безопасности может быть вызван для проверки дополнительных разрешений.

getAttribute

public static Object getAttribute(Path path,
                                  String attribute,
                                  LinkOption... options)
                           throws IOException

Читает значение атрибута файла.

Параметр attribute определяет атрибут для чтения и имеет вид:

[имя-представления:]имя-атрибута
где квадратные скобки [...] обозначают необязательную часть, а символ ':' — сам себя.

имя-представления — это name представления FileAttributeView, которое идентифицирует набор атрибутов файла. Если не указано, по умолчанию используется "basic", имя представления атрибутов файла, которое определяет базовый набор атрибутов файла, общий для многих файловых систем. имя-атрибута — это имя атрибута.

Массив options может использоваться для указания обработки символических ссылок в случае, если файл является символической ссылкой. По умолчанию, символические ссылки следуют, и атрибут файла конечного целевого объекта ссылки считывается. Если присутствует опция NOFOLLOW_LINKS, то символические ссылки не следуют.

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

Path path = ...
    int uid = (Integer)Files.getAttribute(path, "unix:uid");
Параметры:
path — путь к файлу
attribute — атрибут для чтения
options — опции, указывающие, как обрабатывать символические ссылки
Возвращает:
значение атрибута
Выбрасывает:
UnsupportedOperationException — если представление атрибута недоступно
IllegalArgumentException — если имя атрибута не указано или не распознано
IOException — если произошла ошибка ввода-вывода
SecurityException — В случае использования провайдера по умолчанию и установленного менеджера безопасности, его метод checkRead отказывается предоставить доступ к чтению файла. Если этот метод вызван для чтения атрибутов, чувствительных к безопасности, то менеджер безопасности может быть вызван для проверки дополнительных разрешений.

readAttributes

public static Map<String,Object> readAttributes(Path path,
                                                String attributes,
                                                LinkOption... options)
                                         throws IOException

Читает набор атрибутов файла как операцию пакетной обработки.

Параметр attributes определяет атрибуты для чтения и имеет вид:

[имя-представления:]список-атрибутов
где квадратные скобки [...] обозначают необязательную часть, а символ ':' — сам себя.

имя-представления — это name представления FileAttributeView, которое идентифицирует набор атрибутов файла. Если не указано, по умолчанию используется "basic", имя представления атрибутов файла, которое определяет базовый набор атрибутов файла, общий для многих файловых систем.

Компонент список-атрибутов — это список, разделенный запятыми, нулевых или более имен атрибутов для чтения. Если список содержит значение "*" , то считываются все атрибуты. Атрибуты, которые не поддерживаются, игнорируются и не будут присутствовать в возвращаемой карте. Реализация определяет, считываются ли все атрибуты как атомная операция относительно других операций с файловой системой.

Следующие примеры демонстрируют возможные значения параметра attributes:

"*" Читает все basic-file-attributes.
"size,lastModifiedTime,lastAccessTime" Читает размер файла, время последнего изменения и время последнего доступа.
"posix:*" Читает все POSIX-file-attributes.
"posix:permissions,owner,size" Читает разрешения файла POSIX, владельца и размер файла.

Массив options может использоваться для указания обработки символических ссылок в случае, если файл является символической ссылкой. По умолчанию, символические ссылки следуют, и атрибут файла конечного целевого объекта ссылки считывается. Если присутствует опция NOFOLLOW_LINKS, то символические ссылки не следуют.

Параметры:
path — путь к файлу
attributes — атрибуты для чтения
options — опции, указывающие, как обрабатывать символические ссылки
Возвращает:
карта возвращаемых атрибутов; ключами карты являются имена атрибутов, а значениями — значения атрибутов
Выбрасывает:
UnsupportedOperationException — если представление атрибута недоступно
IllegalArgumentException — если не указаны атрибуты или указан нераспознанный атрибут
IOException — если произошла ошибка ввода-вывода
SecurityException — В случае использования провайдера по умолчанию и установленного менеджера безопасности, его метод checkRead отказывается предоставить доступ к чтению файла. Если этот метод вызван для чтения атрибутов, чувствительных к безопасности, менеджер безопасности может быть вызван для проверки дополнительных разрешений.

getPosixFilePermissions

public static Set<PosixFilePermission> getPosixFilePermissions(Path path,
                                                               LinkOption... options)
                                                        throws IOException

Возвращает разрешения файла POSIX.

Параметр path связан с FileSystem, который поддерживает PosixFileAttributeView. Это представление атрибутов предоставляет доступ к атрибутам файла, обычно связанным с файлами в файловых системах, используемых операционными системами, реализующими семейство стандартов Portable Operating System Interface (POSIX).

Массив options может использоваться для указания обработки символических ссылок в случае, если файл является символической ссылкой. По умолчанию, символические ссылки следуют, и атрибут файла конечного целевого объекта ссылки считывается. Если присутствует опция NOFOLLOW_LINKS, то символические ссылки не следуют.

Параметры:
path — путь к файлу
options — опции, указывающие, как обрабатывать символические ссылки
Возвращает:
разрешения файла
Выбрасывает:
UnsupportedOperationException — если связанная файловая система не поддерживает PosixFileAttributeView
IOException — если произошла ошибка ввода-вывода
SecurityException — В случае использования провайдера по умолчанию и установленного менеджера безопасности, он отказывается предоставить RuntimePermission("accessUserInformation") или его метод checkRead отказывается предоставить доступ к чтению файла.

setPosixFilePermissions

public static Path setPosixFilePermissions(Path path,
                                           Set<PosixFilePermission> perms)
                                    throws IOException

Устанавливает разрешения файла POSIX.

Параметр path связан с FileSystem, который поддерживает PosixFileAttributeView. Это представление атрибутов предоставляет доступ к атрибутам файла, обычно связанным с файлами в файловых системах, используемых операционными системами, реализующими семейство стандартов Portable Operating System Interface (POSIX).

Параметры:
path — Путь к файлу
perms — Новый набор разрешений
Возвращает:
Путь
Выбрасывает:
UnsupportedOperationException — если связанная файловая система не поддерживает PosixFileAttributeView
ClassCastException — если набор содержит элементы, не являющиеся типами PosixFilePermission
IOException — если произошла ошибка ввода-вывода
SecurityException — В случае использования провайдера по умолчанию и установленного менеджера безопасности, он отказывается предоставить RuntimePermission("accessUserInformation") или его метод checkWrite отказывается предоставить доступ к записи в файл.

getOwner

public static UserPrincipal getOwner(Path path,
                                     LinkOption... options)
                              throws IOException

Возвращает владельца файла.

Параметр path ассоциирован с файловой системой, поддерживающей FileOwnerAttributeView. Эта просмотр файла атрибутов предоставляет доступ к атрибуту файла, являющемуся владельцем файла.

Параметры:
path - путь к файлу
options - опции, указывающие, как обрабатываются символические ссылки
Возвращает:
Главный объект пользователя, представляющий владельца файла
Исключения:
UnsupportedOperationException - если связанная файловая система не поддерживает FileOwnerAttributeView
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с провайдером по умолчанию и установленным менеджером безопасности, он отклоняет RuntimePermission("accessUserInformation") или его метод checkRead отказывается предоставить доступ для чтения к файлу.

setOwner

public static Path setOwner(Path path,
                            UserPrincipal owner)
                     throws IOException

Обновляет владельца файла.

Параметр path связан с файловой системой, поддерживающей FileOwnerAttributeView. Этот просмотр атрибутов файла предоставляет доступ к атрибуту файла, являющемуся владельцем файла.

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

Path path = ...
     UserPrincipalLookupService lookupService =
         provider(path).getUserPrincipalLookupService();
     UserPrincipal joe = lookupService.lookupPrincipalByName("joe");
     Files.setOwner(path, joe);
Параметры:
path - путь к файлу
owner - новый владелец файла
Возвращает:
Путь
Исключения:
UnsupportedOperationException - если связанная файловая система не поддерживает FileOwnerAttributeView
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с провайдером по умолчанию и установленным менеджером безопасности, он отклоняет RuntimePermission("accessUserInformation") или его метод checkWrite отказывается предоставить доступ для записи к файлу.
См. также:
FileSystem.getUserPrincipalLookupService(), UserPrincipalLookupService

isSymbolicLink

public static boolean isSymbolicLink(Path path)

Проверяет, является ли файл символической ссылкой.

Если требуется различать исключение ввода-вывода от случая, когда файл не является символической ссылкой, то атрибуты файла можно прочитать с помощью метода readAttributes, а тип файла проверить с помощью метода BasicFileAttributes.isSymbolicLink().

Параметры:
path - путь к файлу
Возвращает:
true если файл является символической ссылкой; false если файл не существует, не является символической ссылкой или невозможно определить, является ли файл символической ссылкой.
Исключения:
SecurityException - В случае с провайдером по умолчанию и установленным менеджером безопасности, его метод checkRead отказывается предоставить доступ для чтения к файлу.

isDirectory

public static boolean isDirectory(Path path,
                                  LinkOption... options)

Проверяет, является ли файл каталогом.

Массив options может быть использован для указания, как обрабатывать символические ссылки в случае, если файл является символической ссылкой. По умолчанию, символические ссылки следуют, и атрибут файла конечной цели ссылки считывается. Если присутствует опция NOFOLLOW_LINKS, то символические ссылки не следуют.

Если требуется различать исключение ввода-вывода от случая, когда файл не является каталогом, то атрибуты файла можно прочитать с помощью метода readAttributes, а тип файла проверить с помощью метода BasicFileAttributes.isDirectory().

Параметры:
path - путь к файлу для проверки
options - опции, указывающие, как обрабатываются символические ссылки
Возвращает:
true если файл является каталогом; false если файл не существует, не является каталогом или невозможно определить, является ли файл каталогом.
Исключения:
SecurityException - В случае с провайдером по умолчанию и установленным менеджером безопасности, его метод checkRead отказывается предоставить доступ для чтения к файлу.

isRegularFile

public static boolean isRegularFile(Path path,
                                    LinkOption... options)

Проверяет, является ли файл обычным файлом с непрозрачным содержимым.

Массив options может быть использован для указания, как обрабатывать символические ссылки в случае, если файл является символической ссылкой. По умолчанию, символические ссылки следуют, и атрибут файла конечной цели ссылки считывается. Если присутствует опция NOFOLLOW_LINKS, то символические ссылки не следуют.

Если требуется различать исключение ввода-вывода от случая, когда файл не является обычным файлом, то атрибуты файла можно прочитать с помощью метода readAttributes, а тип файла проверить с помощью метода BasicFileAttributes.isRegularFile().

Параметры:
path - путь к файлу
options - опции, указывающие, как обрабатываются символические ссылки
Возвращает:
true если файл является обычным файлом; false если файл не существует, не является обычным файлом или невозможно определить, является ли файл обычным файлом.
Исключения:
SecurityException - В случае с провайдером по умолчанию и установленным менеджером безопасности, его метод checkRead отказывается предоставить доступ для чтения к файлу.

getLastModifiedTime

public static FileTime getLastModifiedTime(Path path,
                                           LinkOption... options)
                                    throws IOException

Возвращает время последнего изменения файла.

Массив options может быть использован для указания, как обрабатывать символические ссылки в случае, если файл является символической ссылкой. По умолчанию, символические ссылки следуют, и атрибут файла конечной цели ссылки считывается. Если присутствует опция NOFOLLOW_LINKS, то символические ссылки не следуют.

Параметры:
path - путь к файлу
options - опции, указывающие, как обрабатываются символические ссылки
Возвращает:
объект FileTime , представляющий время последнего изменения файла, или специфическое для реализации значение по умолчанию, когда маркер времени для указания времени последнего изменения не поддерживается файловой системой
Исключения:
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с провайдером по умолчанию и установленным менеджером безопасности, его метод checkRead отказывается предоставить доступ для чтения к файлу.
См. также:
BasicFileAttributes.lastModifiedTime()

setLastModifiedTime

public static Path setLastModifiedTime(Path path,
                                       FileTime time)
                                throws IOException

Обновляет атрибут времени последнего изменения файла. Время файла преобразуется в эпоху и точность, поддерживаемые файловой системой. Преобразование с большей к меньшей точности приводит к потере точности. Поведение этого метода при попытке установить время последнего изменения, когда оно не поддерживается файловой системой или находится вне диапазона, поддерживаемого базовым хранилищем файлов, не определено. Оно может или не может завершиться сбросом IOException.

Пример использования: Предположим, мы хотим установить время последнего изменения на текущее время:

Path path = ...
    FileTime now = FileTime.fromMillis(System.currentTimeMillis());
    Files.setLastModifiedTime(path, now);
Параметры:
path - путь к файлу
time - новое время последнего изменения
Возвращает:
путь
Исключения:
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с провайдером по умолчанию, метод менеджера безопасности checkWrite вызывается для проверки доступа к записи в файл
См. также:
BasicFileAttributeView.setTimes(java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime)

size

public static long size(Path path)
                 throws IOException

Возвращает размер файла (в байтах). Размер может отличаться от фактического размера в файловой системе из-за сжатия, поддержки разреженных файлов или других причин. Размер файлов, которые не являются regular файлами, зависит от реализации и поэтому не определён.

Параметры:
path - путь к файлу
Возвращает:
размер файла в байтах
Исключения:
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с провайдером по умолчанию и установленным менеджером безопасности, его метод checkRead отказывается предоставить доступ для чтения к файлу.
См. также:
BasicFileAttributes.size()

exists

public static boolean exists(Path path,
                             LinkOption... options)

Проверяет, существует ли файл.

Параметр options может быть использован для указания, как обрабатывать символические ссылки в случае, если файл является символической ссылкой. По умолчанию, символические ссылки следуют. Если присутствует опция NOFOLLOW_LINKS, то символические ссылки не следуют.

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

Параметры:
path - путь к файлу для проверки
options - параметры, указывающие, как обрабатывать символические ссылки.
Возвращает:
true если файл существует; false если файл не существует или его существование нельзя определить.
Выбрасывает:
SecurityException - В случае использования поставщика по умолчанию вызывается SecurityManager.checkRead(String) для проверки права чтения файла.
См. также:
notExists(java.nio.file.Path, java.nio.file.LinkOption...)

notExists

public static boolean notExists(Path path,
                                LinkOption... options)

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

Параметр options может использоваться для указания того, как обрабатываются символические ссылки, если файл является символической ссылкой. По умолчанию символические ссылки следуют. Если присутствует параметр NOFOLLOW_LINKS, то символические ссылки не следуют.

Обратите внимание, что этот метод не является дополнением к методу exists. В тех случаях, когда нельзя определить, существует ли файл или нет, оба метода возвращают false. Как и в случае с методом exists, результат этого метода немедленно устаревает. Если этот метод указывает, что файл существует, нет гарантии, что последующая попытка создать файл будет успешной. Следует соблюдать осторожность при использовании этого метода в приложениях, чувствительных к безопасности.

Параметры:
path - путь к файлу для проверки
options - параметры, указывающие, как обрабатывать символические ссылки
Возвращает:
true если файл не существует; false если файл существует или его существование нельзя определить
Выбрасывает:
SecurityException - В случае использования поставщика по умолчанию и установки менеджера безопасности вызывается SecurityManager.checkRead(String) для проверки права чтения файла.

isReadable

public static boolean isReadable(Path path)

Проверяет, доступен ли файл для чтения. Этот метод проверяет, существует ли файл и обладает ли эта виртуальная машина Java соответствующими привилегиями, чтобы открыть файл для чтения. В зависимости от реализации, для проверки эффективного доступа к файлу может потребоваться прочитать права доступа, списки управления доступом или другие атрибуты файла. Следовательно, этот метод может быть не атомарным по отношению к другим операциям с файловой системой.

Обратите внимание, что результат этого метода немедленно устаревает. Нет гарантии, что последующая попытка открыть файл для чтения будет успешной (или даже что она будет обращаться к тому же файлу). Следует соблюдать осторожность при использовании этого метода в приложениях, чувствительных к безопасности.

Параметры:
path - путь к файлу для проверки
Возвращает:
true если файл существует и доступен для чтения; false если файл не существует, доступ для чтения был бы запрещен из-за недостаточных привилегий виртуальной машины Java или доступ нельзя определить
Выбрасывает:
SecurityException - В случае использования поставщика по умолчанию и установки менеджера безопасности вызывается checkRead для проверки права чтения файла.

isWritable

public static boolean isWritable(Path path)

Проверяет, доступен ли файл для записи. Этот метод проверяет, существует ли файл и обладает ли эта виртуальная машина Java соответствующими привилегиями для открытия файла для записи. В зависимости от реализации, для проверки эффективного доступа к файлу может потребоваться прочитать права доступа, списки управления доступом или другие атрибуты файла. Следовательно, этот метод может быть не атомарным по отношению к другим операциям с файловой системой.

Обратите внимание, что результат этого метода немедленно устаревает. Нет гарантии, что последующая попытка открыть файл для записи будет успешной (или даже что она будет обращаться к тому же файлу). Следует соблюдать осторожность при использовании этого метода в приложениях, чувствительных к безопасности.

Параметры:
path - путь к файлу для проверки
Возвращает:
true если файл существует и доступен для записи; false если файл не существует, доступ для записи был бы запрещен из-за недостаточных привилегий виртуальной машины Java или доступ нельзя определить
Выбрасывает:
SecurityException - В случае использования поставщика по умолчанию и установки менеджера безопасности вызывается checkWrite для проверки права записи в файл.

isExecutable

public static boolean isExecutable(Path path)

Проверяет, доступен ли файл для выполнения. Этот метод проверяет, существует ли файл и обладает ли эта виртуальная машина Java соответствующими привилегиями для execute файла. Семантика может отличаться при проверке доступа к каталогу. Например, в системах UNIX проверка доступа для выполнения проверяет, имеет ли виртуальная машина Java разрешение на поиск в каталоге для доступа к файлам или подкаталогам.

В зависимости от реализации для проверки эффективного доступа к файлу может потребоваться прочитать права доступа, списки управления доступом или другие атрибуты файла. Следовательно, этот метод может быть не атомарным по отношению к другим операциям с файловой системой.

Обратите внимание, что результат этого метода немедленно устаревает. Нет гарантии, что последующая попытка выполнить файл будет успешной (или даже что она будет обращаться к тому же файлу). Следует соблюдать осторожность при использовании этого метода в приложениях, чувствительных к безопасности.

Параметры:
path - путь к файлу для проверки
Возвращает:
true если файл существует и доступен для выполнения; false если файл не существует, доступ для выполнения был бы запрещен из-за недостаточных привилегий виртуальной машины Java или доступ нельзя определить
Выбрасывает:
SecurityException - В случае использования поставщика по умолчанию и установки менеджера безопасности вызывается checkExec для проверки права выполнения файла.

walkFileTree

public static Path walkFileTree(Path start,
                                Set<FileVisitOption> options,
                                int maxDepth,
                                FileVisitor<? super Path> visitor)
                         throws IOException

Проходит по дереву файлов.

Этот метод проходит по дереву файлов, укоренённому в заданном начальном файле. Проход по дереву файлов выполняется в глубину, и для каждого встреченного файла вызывается заданный FileVisitor. Проход по дереву файлов завершается, когда все доступные файлы в дереве были посещены, или метод посещения возвращает результат TERMINATE. Если метод посещения завершается из-за IOException, непредвиденной ошибки или исключения времени выполнения, то проход завершается, и ошибка или исключение передаются вызывающей стороне этого метода.

Для каждого встреченного файла этот метод пытается прочитать его BasicFileAttributes. Если файл не является каталогом, то вызывается метод visitFile с атрибутами файла. Если атрибуты файла нельзя прочитать из-за ошибки ввода-вывода, то вызывается метод visitFileFailed с ошибкой ввода-вывода.

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

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

По умолчанию символические ссылки автоматически не отслеживаются этим методом. Если параметр options содержит опцию FOLLOW_LINKS, то символические ссылки отслеживаются. При отслеживании ссылок, и атрибуты целевого объекта не могут быть прочитаны, то этот метод пытается получить BasicFileAttributes ссылки. Если они могут быть прочитаны, то вызывается метод visitFile с атрибутами ссылки (в противном случае вызывается метод visitFileFailed как указано выше).

Если параметр options содержит опцию FOLLOW_LINKS, то этот метод отслеживает посещенные каталоги, чтобы обнаруживать циклы. Цикл возникает, когда в каталоге есть запись, являющаяся предком каталога. Обнаружение циклов осуществляется путем записи file-key каталогов, или если ключи файлов недоступны, вызывая метод isSameFile для проверки, является ли каталог тем же файлом, что и предок. При обнаружении цикла он обрабатывается как ошибка ввода-вывода, и вызывается метод visitFileFailed с экземпляром FileSystemLoopException.

Параметр maxDepth — максимальное количество уровней каталогов для посещения. Значение 0 означает, что посещается только начальный файл, если это не запрещено менеджером безопасности. Значение MAX_VALUE может использоваться для указания, что нужно посетить все уровни. Метод visitFile вызывается для всех файлов, включая каталоги, встреченных на maxDepth, если только атрибуты базового файла нельзя прочитать, в этом случае вызывается метод visitFileFailed.

Если посетитель возвращает результат null, то выбрасывается NullPointerException.

Когда установлен менеджер безопасности и он запрещает доступ к файлу (или каталогу), он игнорируется, и посетитель не вызывается для этого файла (или каталога).

Параметры:
start - начальный файл
options - опции для настройки обхода
maxDepth - максимальное количество уровней каталогов для посещения
visitor - посетитель файлов для вызова для каждого файла
Возвращает:
начальный файл
Выбрасывает:
IllegalArgumentException - если параметр maxDepth отрицательный
SecurityException - Если менеджер безопасности запрещает доступ к начальному файлу. В случае с поставщиком по умолчанию вызывается метод checkRead для проверки доступа для чтения к каталогу.
IOException - если метод посетителя генерирует ошибку ввода-вывода

walkFileTree

public static Path walkFileTree(Path start,
                                FileVisitor<? super Path> visitor)
                         throws IOException

Проходит по дереву файлов.

Этот метод работает так, как если бы его вызов был эквивалентен вычислению выражения:

walkFileTree(start, EnumSet.noneOf(FileVisitOption.class), Integer.MAX_VALUE, visitor)
В других словах, он не следует символичным ссылкам и посещает все уровни дерева файлов.
Параметры:
start - начальный файл
visitor - посетитель файлов для вызова для каждого файла
Возвращает:
начальный файл
Выбрасывает:
SecurityException - Если менеджер безопасности запрещает доступ к начальному файлу. В случае с поставщиком по умолчанию вызывается метод checkRead для проверки доступа для чтения к каталогу.
IOException - если метод посетителя генерирует ошибку ввода-вывода

newBufferedReader

public static BufferedReader newBufferedReader(Path path,
                                               Charset cs)
                                        throws IOException

Открывает файл для чтения, возвращая BufferedReader, который может использоваться для эффективного чтения текста из файла. Байты из файла декодируются в символы с использованием указанного набора символов. Чтение начинается с начала файла.

Методы Reader, которые считывают данные из файла, выбрасывают IOException, если считан последовательность байтов с неправильным форматом или не преобразуемая.

Параметры:
path - путь к файлу
cs - набор символов для использования при декодировании
Возвращает:
новый буферизованный чтец с размером буфера по умолчанию для чтения текста из файла
Выбрасывает:
IOException - если возникает ошибка ввода-вывода при открытии файла
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkRead для проверки доступа для чтения к файлу.
См. также:
readAllLines(java.nio.file.Path, java.nio.charset.Charset)

newBufferedReader

public static BufferedReader newBufferedReader(Path path)
                                        throws IOException

Открывает файл для чтения, возвращая BufferedReader для эффективного чтения текста из файла. Байты из файла декодируются в символы с использованием UTF-8 charset.

Этот метод работает так, как если бы его вызов был эквивалентен вычислению выражения:

Files.newBufferedReader(path, StandardCharsets.UTF_8)
Параметры:
path - путь к файлу
Возвращает:
новый буферизованный чтец с размером буфера по умолчанию для чтения текста из файла
Выбрасывает:
IOException - если возникает ошибка ввода-вывода при открытии файла
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkRead для проверки доступа для чтения к файлу.
С:
1.8

newBufferedWriter

public static BufferedWriter newBufferedWriter(Path path,
                                               Charset cs,
                                               OpenOption... options)
                                        throws IOException

Открывает или создает файл для записи, возвращая BufferedWriter, который может использоваться для эффективной записи текста в файл. Параметр options определяет, как файл создается или открывается. Если опций нет, то этот метод работает так, как если бы присутствовали опции CREATE, TRUNCATE_EXISTING и WRITE. Другими словами, он открывает файл для записи, создает его, если он не существует, или обнуляет существующий regular-file до размера 0 если он существует.

Методы Writer для записи текста выбрасывают IOException, если текст не может быть закодирован с использованием указанного набора символов.

Параметры:
path - путь к файлу
cs - набор символов для использования при кодировании
options - опции, определяющие, как открывается файл
Возвращает:
новый буферизованный писатель с размером буфера по умолчанию для записи текста в файл
Выбрасывает:
IOException - если возникает ошибка ввода-вывода при открытии или создании файла
UnsupportedOperationException - если указана недопустимая опция
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkWrite для проверки доступа для записи в файл.
См. также:
write(Path,Iterable,Charset,OpenOption[])

newBufferedWriter

public static BufferedWriter newBufferedWriter(Path path,
                                               OpenOption... options)
                                        throws IOException

Открывает или создает файл для записи, возвращая BufferedWriter для эффективной записи текста в файл. Текст кодируется в байты для записи с использованием UTF-8 charset.

Этот метод работает так, как если бы его вызов был эквивалентен вычислению выражения:

Files.newBufferedWriter(path, StandardCharsets.UTF_8, options)
Параметры:
path - путь к файлу
options - опции, определяющие, как открывается файл
Возвращает:
новый буферизованный писатель с размером буфера по умолчанию для записи текста в файл
Выбрасывает:
IOException - если возникает ошибка ввода-вывода при открытии или создании файла
UnsupportedOperationException - если указана недопустимая опция
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkWrite для проверки доступа для записи в файл.
С:
1.8

copy

public static long copy(InputStream in,
                        Path target,
                        CopyOption... options)
                 throws IOException

Копирует все байты из потока ввода в файл. При возврате поток ввода будет находиться в конце потока.

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

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

Этот метод может блокироваться неопределенно долго, считывая данные из потока ввода (или записывая данные в файл). Поведение в случае, когда поток ввода закрывается асинхронно или поток прерывается во время копирования, сильно зависит от конкретного потока ввода и поставщика файловой системы, и поэтому не указано.

Пример использования: Предположим, что нам нужно сохранить веб-страницу и сохранить ее в файл:

Path path = ...
     URI u = URI.create("http://java.sun.com/");
     try (InputStream in = u.toURL().openStream()) {
         Files.copy(in, path);
     }
Параметры:
in - поток ввода для чтения
target - путь к файлу
options - опции, определяющие, как должна быть выполнена копия
Возвращает:
количество считанных или записанных байтов
Выбрасывает:
IOException - если при чтении или записи возникает ошибка ввода-вывода
FileAlreadyExistsException - если целевой файл существует, но не может быть заменен, потому что опция REPLACE_EXISTING не указана (необязательная специфичная исключение)
DirectoryNotEmptyException - опция REPLACE_EXISTING указана, но файл не может быть заменен, потому что это непустой каталог (необязательная специфичная исключение) *
UnsupportedOperationException - если options содержит опцию копирования, которая не поддерживается
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkWrite для проверки доступа для записи в файл. Когда указана опция REPLACE_EXISTING, вызывается метод менеджера безопасности checkDelete для проверки возможности удаления существующего файла.

copy

public static long copy(Path source,
                        OutputStream out)
                 throws IOException

Копирует все байты из файла в поток вывода.

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

Этот метод может блокироваться неопределенно долго, записывая данные в поток вывода (или читая данные из файла). Поведение в случае, когда поток вывода закрывается асинхронно или поток прерывается во время копирования, сильно зависит от конкретного потока вывода и поставщика файловой системы, и поэтому не указано.

Обратите внимание, что если данный поток вывода является Flushable, то его метод flush может потребоваться вызвать после завершения этого метода для сброса всех буферизованных данных вывода.

Параметры:
source - путь к файлу
out - поток вывода для записи
Возвращает:
количество считанных или записанных байтов
Исключения:
IOException - если при чтении или записи произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа к чтению файла.

readAllBytes

public static byte[] readAllBytes(Path path)
                           throws IOException

Считывает все байты из файла. Метод гарантирует, что файл закрывается, когда все байты были считаны или произошла ошибка ввода-вывода или другое исключение во время выполнения.

Обратите внимание, что этот метод предназначен для простых случаев, когда удобно считать все байты в массив байтов. Он не предназначен для чтения больших файлов.

Параметры:
path - путь к файлу
Возвращает:
массив байтов, содержащий считанные из файла байты
Исключения:
IOException - если при чтении из потока произошла ошибка ввода-вывода
OutOfMemoryError - если не удаётся выделить массив требуемого размера, например, файл больше, чем 2GB
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа к чтению файла.

readAllLines

public static List<String> readAllLines(Path path,
                                        Charset cs)
                                 throws IOException

Считывает все строки из файла. Этот метод гарантирует, что файл закрывается, когда все байты были считаны или произошла ошибка ввода-вывода или другое исключение во время выполнения. Байты из файла декодируются в символы с использованием указанного набора символов.

Этот метод распознаёт следующие разделители строк:

  • \u000D и \u000A, ВОЗВРАТ КАРЕТКИ и ПЕРЕВОД СТРОКИ
  • \u000A, ПЕРЕВОД СТРОКИ
  • \u000D, ВОЗВРАТ КАРЕТКИ

В будущих версиях могут быть распознаны дополнительные разделители строк Юникода.

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

Параметры:
path - путь к файлу
cs - набор символов для декодирования
Возвращает:
строки из файла в виде List; возможность изменения List зависит от реализации и поэтому не определена
Исключения:
IOException - если при чтении из файла произошла ошибка ввода-вывода или считанная последовательность байтов имеет неправильный или не отображаемый формат
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа к чтению файла.
См. также:
newBufferedReader(java.nio.file.Path, java.nio.charset.Charset)

readAllLines

public static List<String> readAllLines(Path path)
                                 throws IOException

Считывает все строки из файла. Байты из файла декодируются в символы с использованием набора символов UTF-8 charset.

Этот метод работает так, как будто вызов эквивалентен вычислению выражения:

Files.readAllLines(path, StandardCharsets.UTF_8)
Параметры:
path - путь к файлу
Возвращает:
строки из файла в виде List; возможность изменения List зависит от реализации и поэтому не определена
Исключения:
IOException - если при чтении из файла произошла ошибка ввода-вывода или считанная последовательность байтов имеет неправильный или не отображаемый формат
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа к чтению файла.
С момента:
1.8

write

public static Path write(Path path,
                         byte[] bytes,
                         OpenOption... options)
                  throws IOException

Записывает байты в файл. Параметр options определяет, как файл создаётся или открывается. Если опции отсутствуют, этот метод работает так, как будто присутствуют опции CREATE, TRUNCATE_EXISTING и WRITE. Другими словами, он открывает файл для записи, создавая файл, если он не существует, или первоначально обрезая существующий regular-file до размера 0. Все байты в массиве байтов записываются в файл. Метод гарантирует, что файл закрывается, когда все байты были записаны (или произошла ошибка ввода-вывода или другое исключение во время выполнения). Если произошла ошибка ввода-вывода, то это может произойти после создания или обрезки файла, или после записи некоторых байтов в файл.

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

Path path = ...
     byte[] bytes = ...
     Files.write(path, bytes, StandardOpenOption.APPEND);
Параметры:
path - путь к файлу
bytes - массив байтов с байтами для записи
options - опции, определяющие, как открывается файл
Возвращает:
путь
Исключения:
IOException - если при записи в файл или создании файла произошла ошибка ввода-вывода
UnsupportedOperationException - если указана недопустимая опция
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkWrite для проверки доступа к записи в файл.

write

public static Path write(Path path,
                         Iterable<? extends CharSequence> lines,
                         Charset cs,
                         OpenOption... options)
                  throws IOException

Записывает строки текста в файл. Каждая строка — это последовательность символов, которая записывается в файл последовательно, и каждая строка завершается разделителем строк платформы, как определено системной переменной line.separator. Символы кодируются в байты с использованием указанного набора символов.

Параметр options определяет, как файл создаётся или открывается. Если опции отсутствуют, этот метод работает так, как будто присутствуют опции CREATE, TRUNCATE_EXISTING и WRITE. Другими словами, он открывает файл для записи, создавая файл, если он не существует, или первоначально обрезая существующий regular-file до размера 0. Метод гарантирует, что файл закрывается, когда все строки были записаны (или произошла ошибка ввода-вывода или другое исключение во время выполнения). Если произошла ошибка ввода-вывода, то это может произойти после создания или обрезки файла, или после записи некоторых байтов в файл.

Параметры:
path - путь к файлу
lines - объект для итерирования по последовательностям символов
cs - набор символов для кодирования
options - опции, определяющие, как открывается файл
Возвращает:
путь
Исключения:
IOException - если при записи в файл или создании файла произошла ошибка ввода-вывода или текст не может быть закодирован с использованием указанного набора символов
UnsupportedOperationException - если указана недопустимая опция
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkWrite для проверки доступа к записи в файл.

write

public static Path write(Path path,
                         Iterable<? extends CharSequence> lines,
                         OpenOption... options)
                  throws IOException

Записывает строки текста в файл. Символы кодируются в байты с использованием набора символов UTF-8 charset.

Этот метод работает так, как будто вызов эквивалентен вычислению выражения:

Files.write(path, lines, StandardCharsets.UTF_8, options);
Параметры:
path - путь к файлу
lines - объект для итерирования по последовательностям символов
options - опции, определяющие, как открывается файл
Возвращает:
путь
Исключения:
IOException - если при записи в файл или создании файла произошла ошибка ввода-вывода, или текст не может быть закодирован как UTF-8
UnsupportedOperationException - если указана недопустимая опция
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkWrite для проверки доступа к записи в файл.
С момента:
1.8

list

public static Stream<Path> list(Path dir)
                         throws IOException

Возвращает лениво заполняемый Stream, элементы которого — записи в каталоге. Список не рекурсивный.

Элементы потока — объекты Path, полученные как будто с помощью resolving имени записи каталога относительно dir. Некоторые файловые системы поддерживают специальные ссылки на сам каталог и родительский каталог. Записи, представляющие эти ссылки, не включаются.

Поток является слабо согласованным. Он потокобезопасен, но не замораживает каталог во время итерирования, поэтому он может (или не может) отражать обновления каталога, произошедшие после возврата из этого метода.

Возвращаемый поток инкапсулирует DirectoryStream. Если требуется своевременное освобождение ресурсов файловой системы, следует использовать конструкцию try-with-resources, чтобы гарантировать, что метод close потока вызывается после завершения операций с потоком.

Работа с закрытым потоком ведет себя так, как будто достигнут конец потока. Из-за предварительного чтения один или несколько элементов могут быть возвращены после закрытия потока.

Если при обращении к каталогу после возврата из этого метода выбрасывается IOException, он оборачивается в UncheckedIOException, который будет сгенерирован методом, вызвавшим обращение.

Параметры:
dir - Путь к каталогу
Возвращает:
Поток Stream, описывающий содержимое каталога
Исключения:
NotDirectoryException - если файл нельзя открыть, так как он не является каталогом (возможное конкретное исключение)
IOException - если при открытии каталога произошла ошибка ввода-вывода
SecurityException - В случае с поставщиком по умолчанию, если установлен менеджер безопасности, вызывается метод checkRead для проверки права чтения каталога.
С:
1.8
См. также:
newDirectoryStream(Path)

walk

public static Stream<Path> walk(Path start,
                                int maxDepth,
                                FileVisitOption... options)
                         throws IOException

Возвращает Stream, лениво заполняемый Path путем обхода файловой структуры, укоренённой в заданном файле. Файловая структура обходится в глубину, элементы потока — объекты Path, полученные как будто с помощью resolving относительного пути относительно start.

Поток stream обходит файловую структуру по мере потребления элементов. Возвращаемый Stream гарантированно содержит по крайней мере один элемент — сам начальный файл. Для каждого посещённого файла поток пытается прочитать его BasicFileAttributes. Если файл является каталогом и может быть успешно открыт, записи в каталоге и их потомки следуют за каталогом в потоке по мере их обнаружения. Когда все записи посещены, каталог закрывается. Проход по файловой структуре продолжается в следующем брате каталога.

Поток является слабо согласованным. Он не замораживает файловую структуру во время итерирования, поэтому он может (или не может) отражать обновления файловой структуры, произошедшие после возврата из этого метода.

По умолчанию символические ссылки не следуют автоматически. Если параметр options содержит опцию FOLLOW_LINKS, символические ссылки следуют. При слежении за ссылками, если атрибуты целевого файла не могут быть прочитаны, этот метод пытается получить BasicFileAttributes ссылки.

Если параметр options содержит опцию FOLLOW_LINKS, поток отслеживает посещённые каталоги, чтобы обнаруживать циклы. Цикл возникает, когда в каталоге есть запись, которая является предком этого каталога. Обнаружение циклов осуществляется путём регистрации file-key каталогов, или, если ключи файлов недоступны, путём вызова метода isSameFile для проверки, является ли каталог тем же файлом, что и предок. При обнаружении цикла он обрабатывается как ошибка ввода-вывода с экземпляром FileSystemLoopException.

Параметр maxDepth — максимальное число уровней каталогов для посещения. Значение 0 означает, что посещается только начальный файл, если это не запрещено менеджером безопасности. Значение MAX_VALUE может использоваться для указания того, что следует посетить все уровни.

Когда установлен менеджер безопасности и он запрещает доступ к файлу (или каталогу), он игнорируется и не включается в поток.

Возвращаемый поток инкапсулирует один или несколько DirectoryStream. Если требуется своевременное освобождение ресурсов файловой системы, следует использовать конструкцию try-with-resources, чтобы гарантировать, что метод close потока вызывается после завершения операций с потоком. Работа с закрытым потоком приведёт к IllegalStateException.

Если при обращении к каталогу после возврата из этого метода выбрасывается IOException, он оборачивается в UncheckedIOException, который будет сгенерирован вызвавшим обращение методом.

Параметры:
start - начальный файл
maxDepth - максимальное число уровней каталогов для посещения
options - опции для настройки обхода
Возвращает:
Поток Stream Path
Исключения:
IllegalArgumentException - если параметр maxDepth отрицательный
SecurityException - Если менеджер безопасности запрещает доступ к начальному файлу. В случае с поставщиком по умолчанию вызывается метод checkRead для проверки права чтения каталога.
IOException - если при обращении к начальному файлу произошла ошибка ввода-вывода.
С:
1.8

walk

public static Stream<Path> walk(Path start,
                                FileVisitOption... options)
                         throws IOException

Возвращает Stream, лениво заполняемый Path путем обхода файловой структуры, укоренённой в заданном файле. Файловая структура обходится в глубину, элементы потока — объекты Path, полученные как будто с помощью resolving относительного пути относительно start.

Этот метод работает так, как будто его вызов эквивалентен вычислению выражения:

walk(start, Integer.MAX_VALUE, options)
Другими словами, он посещает все уровни файловой структуры.

Возвращаемый поток инкапсулирует один или несколько DirectoryStream. Если требуется своевременное освобождение ресурсов файловой системы, следует использовать конструкцию try-with-resources, чтобы гарантировать, что метод close потока вызывается после завершения операций с потоком. Работа с закрытым потоком приведёт к IllegalStateException.

Параметры:
start - начальный файл
options - опции для настройки обхода
Возвращает:
Поток Stream Path
Исключения:
SecurityException - Если менеджер безопасности запрещает доступ к начальному файлу. В случае с поставщиком по умолчанию вызывается метод checkRead для проверки права чтения каталога.
IOException - если при обращении к начальному файлу произошла ошибка ввода-вывода.
С:
1.8
См. также:
walk(Path, int, FileVisitOption...)

find

public static Stream<Path> find(Path start,
                                int maxDepth,
                                BiPredicate<Path,BasicFileAttributes> matcher,
                                FileVisitOption... options)
                         throws IOException

Возвращает Stream, лениво заполняемый Path путем поиска файлов в файловой структуре, укоренённой в заданном файле.

Этот метод обходит файловую структуру точно так же, как указано в методе walk. Для каждого встреченного файла вызывается переданный BiPredicate с его Path и BasicFileAttributes. Объект Path получается как будто с помощью resolving относительного пути относительно start и включается только в возвращаемый Stream, если BiPredicate возвращает true. В сравнении с вызовом filter на Stream возвращаемом методом walk, этот метод может быть эффективнее, избегая излишнего получения BasicFileAttributes.

Возвращаемый поток инкапсулирует один или несколько DirectoryStream. Если требуется своевременное освобождение ресурсов файловой системы, следует использовать конструкцию try-with-resources, чтобы гарантировать, что метод close потока вызывается после завершения операций с потоком. Работа с закрытым потоком приведёт к IllegalStateException.

Если при обращении к каталогу после возврата из этого метода выбрасывается IOException, он оборачивается в UncheckedIOException, который будет сгенерирован вызвавшим обращение методом.

Параметры:
start - начальный файл
maxDepth - максимальное количество уровней каталогов для поиска
matcher - функция, определяющая, должен ли файл быть включён в возвращаемый поток
options - параметры для настройки обхода
Возвращает:
поток Stream Path
Выбрасывает:
IllegalArgumentException - если параметр maxDepth отрицательный
SecurityException - если менеджер безопасности запрещает доступ к начальному файлу. В случае с поставщиком по умолчанию вызывается метод checkRead для проверки доступа для чтения к каталогу.
IOException - если при доступе к начальному файлу возникает ошибка ввода-вывода.
С:
1.8
См. также:
walk(Path, int, FileVisitOption...)

lines

public static Stream<String> lines(Path path,
                                   Charset cs)
                            throws IOException

Считывает все строки из файла как Stream. В отличие от readAllLines, этот метод не считывает все строки в List, а вместо этого заполняет их лениво по мере потребления потока.

Байты из файла декодируются в символы с использованием указанного набора символов, и поддерживаются те же разделители строк, что и в readAllLines.

После возврата этого метода любая последующая ошибка ввода-вывода, которая возникает при чтении из файла или при чтении неверной или не отображаемой последовательности байтов, обертывается в UncheckedIOException, которая будет выброшена методом Stream, вызвавшим чтение. В случае выброса IOException при закрытии файла, он также обертывается как UncheckedIOException.

Возвращаемый поток инкапсулирует Reader. Если требуется своевременное удаление системных ресурсов, следует использовать конструкцию try-with-resources, чтобы гарантировать, что метод close потока вызывается после завершения операций с потоком.

Параметры:
path - путь к файлу
cs - набор символов для декодирования
Возвращает:
строки из файла в виде Stream
Выбрасывает:
IOException - если при открытии файла произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа для чтения к файлу.
С:
1.8
См. также:
readAllLines(Path, Charset), newBufferedReader(Path, Charset), BufferedReader.lines()

lines

public static Stream<String> lines(Path path)
                            throws IOException

Считывает все строки из файла как Stream. Байты из файла декодируются в символы с использованием UTF-8 charset.

Этот метод работает так, как будто вызов эквивалентен вычислению выражения:

Files.lines(path, StandardCharsets.UTF_8)
Параметры:
path - путь к файлу
Возвращает:
строки из файла в виде Stream
Выбрасывает:
IOException - если при открытии файла произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа для чтения к файлу.
С:
1.8

© 1993, 2020, 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.

Spec-Zone.ru

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