Spec-Zone.ru › OpenJDK 17

Класс Файлы

java.lang.Object
java.nio.file.Files
public final class Files extends Object
Этот класс состоит исключительно из статических методов, которые работают с файлами, каталогами или другими типами файлов.

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

Since:
1.7

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

Modifier and Type Method Description
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(String prefix, FileAttribute<?>... attrs)
Создаёт новую директорию в стандартном временном каталоге, используя указанный префикс для генерации её имени.
static Path createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs)
Создаёт новую директорию в указанной директории, используя указанный префикс для генерации её имени.
static Path createTempFile(String prefix, String suffix, FileAttribute<?>... attrs)
Создаёт пустой файл в стандартном временном каталоге, используя указанный префикс и суффикс для генерации его имени.
static Path createTempFile(Path dir, 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 long mismatch(Path path, Path path2)
Находит и возвращает позицию первого несовпадающего байта в содержимом двух файлов или -1L, если несоответствие отсутствует.
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, String glob)
Открывает директорию, возвращая DirectoryStream для итерации по записям в каталоге.
static DirectoryStream<Path> newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter)
Открывает директорию, возвращая 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 String readString(Path path)
Считывает всё содержимое файла в строку, декодируя из байтов в символы с использованием UTF-8 charset.
static String readString(Path path, Charset cs)
Считывает все символы из файла в строку, декодируя из байтов в символы с использованием указанного набора символов.
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, int maxDepth, FileVisitOption... options)
Возвращает Stream, который лениво заполняется Path путем обхода дерева файлов, укорененного в заданном начальном файле.
static Stream<Path> walk(Path start, 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)
Обходит дерево файлов.
END_OF_DOCUMENT_MARKER
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)
Записывает строки текста в файл.
static Path writeString(Path path, CharSequence csq, Charset cs, OpenOption... options)
Записывает CharSequence в файл.
static Path writeString(Path path, CharSequence csq, OpenOption... options)
Записывает CharSequence в файл.

Методы, объявленные в классе 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 - если опция не поддерживается
FileAlreadyExistsException - Если файл с таким именем уже существует, и опция CREATE_NEW указана (дополнительное специфическое исключение)
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, могут присутствовать следующие опции:

Options
Option Описание
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.

Parameters:
path - путь к файлу для открытия или создания
options - опции, определяющие способ открытия файла
Returns:
новый доступный для поиска байтовый канал
Throws:
IllegalArgumentException - если множество содержит недопустимую комбинацию опций
UnsupportedOperationException - если указана неподдерживаемая опция открытия
FileAlreadyExistsException - Если файл с таким именем уже существует, и задана опция CREATE_NEW, и файл открывается для записи (возможная специфичная ошибка)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования провайдера по умолчанию и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа для чтения к пути, если файл открывается для чтения. Вызывается метод checkWrite для проверки доступа на запись к пути, если файл открывается для записи. Вызывается метод checkDelete для проверки доступа на удаление, если файл открывается с опцией DELETE_ON_CLOSE.
See Also:
  • 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.

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

newDirectoryStream

public static DirectoryStream<Path> newDirectoryStream(Path dir, String glob) throws IOException
Открывает директорию, возвращая DirectoryStream для итерирования по элементам в директории. Элементы, возвращаемые итератором потока директории iterator, имеют тип Path, каждый из которых представляет собой элемент в директории. Объекты Path получаются как результат resolving имени элемента директории относительно dir. Элементы, возвращаемые итератором, отфильтровываются путём соответствия String представления имени файла заданному шаблону глоббинга.

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

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

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

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

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

Parameters:
dir - путь к директории
glob - шаблон глоббинга
Returns:
новый и открытый объект DirectoryStream
Throws:
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)) {
         :
     }
 
Parameters:
dir - путь к директории
filter - фильтр потока директории
Returns:
новый и открытый объект DirectoryStream
Throws:
NotDirectoryException - если файл не может быть открыт, так как он не является директорией (возможная специфичная ошибка)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования провайдера по умолчанию и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа для чтения к директории.

createFile

public static Path createFile(Path path, FileAttribute<?>... attrs) throws IOException
Создаёт новый и пустой файл, если файл уже существует, то происходит ошибка. Проверка существования файла и создание нового файла, если он не существует, являются одной операцией, атомарной по отношению ко всем другим операциям файловой системы, которые могут повлиять на директорию.

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

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

создание каталога

public static Path createDirectory(Path dir, FileAttribute<?>... attrs) throws IOException
Создаёт новый каталог. Проверка существования файла и создание каталога, если он не существует, — это одна атомарная операция по отношению ко всем другим файловым операциям, которые могут повлиять на каталог. Метод createDirectories следует использовать в тех случаях, когда необходимо предварительно создать все отсутствующие родительские каталоги.

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

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

создание каталогов

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

создание временного файла

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 для проверки доступа на запись к файлу.

создание временного файла

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. Если в массиве содержится более одного атрибута с одинаковым именем, то все кроме последнего игнорируются.

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

createTempDirectory

public static Path createTempDirectory(String prefix, FileAttribute<?>... attrs) throws IOException
Создаёт новую директорию в стандартном каталоге временных файлов, используя заданный префикс для генерации её имени. Результирующая Path ассоциируется с FileSystem по умолчанию.

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

Parameters:
prefix - строка-префикс, используемая для генерации имени директории; может быть null
attrs - необязательный список атрибутов файла, которые должны быть установлены атомарно при создании директории
Returns:
путь к только что созданной директории, которая не существовала до вызова этого метода
Throws:
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.

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

createLink

public static Path createLink(Path link, Path existing) throws IOException
Создаёт новую ссылку (запись в каталоге) для существующего файла (необязательная операция).

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

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

delete

public static void delete(Path path) throws IOException
Удаляет файл.

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

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

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

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

удалитьЕслиСуществует

public static boolean deleteIfExists(Path path) throws IOException
Удаляет файл, если он существует.

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

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

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

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

копировать

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 может включать любые из следующих:

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 - если произошла ошибка ввода-вывода
checkWrite - В случае с поставщиком по умолчанию, если установлен менеджер безопасности, вызывается метод 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 объекта на один и тот же файл, и, в зависимости от реализации, может потребоваться открыть или получить доступ к обоим файлам.

Если файловая система и файлы остаются статичными, то этот метод реализует отношение эквивалентности для не-null 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()

mismatch

public static long mismatch(Path path, Path path2) throws IOException
Находит и возвращает позицию первого несовпадающего байта в содержимом двух файлов, или -1L если несовпадений нет. Позиция будет в диапазоне от 0L до размера (в байтах) меньшего файла.

Два файла считаются совпадающими, если они удовлетворяют одному из следующих условий:

  • Два пути указывают на один и тот же файл, даже если два равные пути указывают на файл, который не существует, или
  • Два файла имеют одинаковый размер, и каждый байт в первом файле идентичен соответствующему байту во втором файле.

В противном случае между двумя файлами есть несовпадение, и возвращаемое значение этого метода:

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

Этот метод может не быть атомарным по отношению к другим операциям с файловой системой. Этот метод всегда рефлексивен (для Path f, mismatch(f,f) возвращает -1L). Если файловая система и файлы остаются статичными, то этот метод симметричен (для двух Paths f и g, mismatch(f,g) вернёт то же самое значение, что и mismatch(g,f)).

Parameters:
path - путь к первому файлу
path2 - путь ко второму файлу
Returns:
позиция первого несовпадения или -1L если несовпадений нет
Throws:
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkRead для проверки доступа к чтению обоих файлов.
Since:
12

isHidden

public static boolean isHidden(Path path) throws IOException
Определяет, считается ли файл скрытым.
API Note:
Точное определение скрытого файла зависит от платформы или поставщика. Например, в UNIX-системах файл считается скрытым, если его имя начинается с символа точки ('.'). В Windows файл считается скрытым, если атрибут DOS hidden установлен.

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

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

probeContentType

public static String probeContentType(Path path) throws IOException
Определяет тип содержимого файла.

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

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

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

Parameters:
path - путь к файлу для проверки
Returns:
Тип содержимого файла или null если тип содержимого определить невозможно
Throws:
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();
         :
     }
 
Type Parameters:
V - Тип представления атрибутов
Parameters:
path - путь к файлу
type - объект, соответствующий представлению атрибутов файла
options - опции, указывающие, как обрабатываются символьные ссылки
Returns:
представление атрибутов файла указанного типа или 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);
 
Type Parameters:
A - тип атрибутов
Parameters:
path - путь к файлу
type - класс атрибутов файла, которые необходимо прочитать
options - опции, указывающие, как обрабатываются символьные ссылки
Returns:
атрибуты файла
Throws:
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 - опции, указывающие, как обрабатывать символические ссылки
Возвращает:
данный путь
Выбрасывает:
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 запрещает чтение файла.

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

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 отклоняет запись в файл.

Получить владельца

public static UserPrincipal getOwner(Path path, LinkOption... options) throws IOException
Возвращает владельца файла.

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

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

Установить владельца

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

Является ли символической ссылкой

public static boolean isSymbolicLink(Path path)
Проверяет, является ли файл символической ссылкой.

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

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

Является ли каталогом

public static boolean isDirectory(Path path, LinkOption... options)
Проверяет, является ли файл каталогом.

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

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

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

Является ли обычным файлом

public static boolean isRegularFile(Path path, LinkOption... options)
Проверяет, является ли файл обычным файлом с непрозрачным содержимым.

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

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

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

Получить время последней модификации

public static FileTime getLastModifiedTime(Path path, LinkOption... options) throws IOException
Возвращает время последней модификации файла.

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

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

Установить время последней модификации

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)

размер

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

существует

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...)

неСуществует

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 выбрасывается.

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

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

walkFileTree

public static Path walkFileTree(Path start, FileVisitor<? super Path> visitor) throws IOException
Обход файловой структуры.

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

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

newBufferedReader

public static BufferedReader newBufferedReader(Path path, Charset cs) throws IOException
Открывает файл для чтения, возвращая BufferedReader, который может быть использован для эффективного чтения текста из файла. Байты из файла декодируются в символы с использованием указанного набора символов. Чтение начинается с начала файла.

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

Parameters:
path - путь к файлу
cs - набор символов для декодирования
Returns:
новый буферизованный ридер, с буфером по умолчанию, для чтения текста из файла
Throws:
IOException - если происходит ошибка ввода-вывода при открытии файла
SecurityException - В случае с поставщиком по умолчанию, и при установке менеджера безопасности, вызывается метод checkRead для проверки доступа для чтения к файлу.
See Also:
  • 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)
Parameters:
path - путь к файлу
Returns:
новый буферизованный ридер, с буфером по умолчанию, для чтения текста из файла
Throws:
IOException - если происходит ошибка ввода-вывода при открытии файла
SecurityException - В случае с поставщиком по умолчанию, и при установке менеджера безопасности, вызывается метод checkRead для проверки доступа для чтения к файлу.
Since:
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, если текст не может быть закодирован с использованием указанного набора символов.

Parameters:
path - путь к файлу
cs - набор символов для кодирования
options - опции, определяющие, как файл открывается
Returns:
новый буферизованный писатель, с буфером по умолчанию, для записи текста в файл
Throws:
IllegalArgumentException - если options содержит недопустимую комбинацию опций
IOException - если происходит ошибка ввода-вывода при открытии или создании файла
UnsupportedOperationException - если указана неподдерживаемая опция
FileAlreadyExistsException - Если файл с таким именем уже существует, и указана опция CREATE_NEW (опциональное специфическое исключение)
SecurityException - В случае с поставщиком по умолчанию, и при установке менеджера безопасности, вызывается метод checkWrite для проверки доступа для записи к файлу. Метод checkDelete вызывается для проверки доступа на удаление, если файл открывается с опцией DELETE_ON_CLOSE.
See Also:
  • 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 - параметры, определяющие способ открытия файла
Возвращает:
новый буферизованный писатель с размером буфера по умолчанию для записи текста в файл
Исключение:
IllegalArgumentException - если options содержит недопустимую комбинацию параметров
IOException - если при открытии или создании файла произошла ошибка ввода-вывода
UnsupportedOperationException - если указан неподдерживаемый параметр
FileAlreadyExistsException - Если файл с таким именем уже существует, и указан параметр CREATE_NEW (дополнительное специфичное исключение)
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkWrite для проверки доступа к записи в файл. Метод checkDelete вызывается для проверки доступа к удалению, если файл открыт с параметром DELETE_ON_CLOSE.
С:
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://www.example.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 для проверки доступа к чтению файла.

readString

public static String readString(Path path) throws IOException
Читает всё содержимое из файла в строку, декодируя байты в символы с использованием кодировки UTF-8 charset. Метод гарантирует, что файл закрывается, когда всё содержимое прочитано или произошла ошибка ввода-вывода или другое исключение во время выполнения.

Этот метод эквивалентен: readString(path, StandardCharsets.UTF_8).

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

readString

public static String readString(Path path, Charset cs) throws IOException
Читает все символы из файла в строку, декодируя байты в символы с использованием заданной кодировки. Метод гарантирует, что файл закрывается, когда всё содержимое прочитано или произошла ошибка ввода-вывода или другое исключение во время выполнения.

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

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

readAllLines

public static List<String> readAllLines(Path path, Charset cs) throws IOException
Чтение всех строк из файла. Этот метод гарантирует, что файл закрывается, когда все байты были прочитаны или произошла ошибка ввода-вывода или другая исключительная ситуация во время выполнения. Байты из файла декодируются в символы с использованием указанного набора символов.

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

  • \u000D после \u000A, КОД ВОЗВРАТА каретки, за которым следует ПЕРЕВОД СТРОКИ
  • \u000A, ПЕРЕВОД СТРОКИ
  • \u000D, КОД ВОЗВРАТА каретки

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

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

Parameters:
path - путь к файлу
cs - набор символов для декодирования
Returns:
строки из файла в виде List; является ли List изменяемым или нет, зависит от реализации и поэтому не указано
Throws:
IOException - если произошла ошибка ввода-вывода при чтении из файла или прочитанная последовательность байтов была некорректной или не отображаемой
SecurityException - В случае с предустановленным поставщиком и установленным менеджером безопасности метод checkRead вызывается для проверки доступа к чтению файла.
See Also:
  • 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)
Parameters:
path - путь к файлу
Returns:
строки из файла в виде List; является ли List изменяемым или нет, зависит от реализации и поэтому не указано
Throws:
IOException - если произошла ошибка ввода-вывода при чтении из файла или прочитанная последовательность байтов была некорректной или не отображаемой
SecurityException - В случае с предустановленным поставщиком и установленным менеджером безопасности метод checkRead вызывается для проверки доступа к чтению файла.
Since:
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);
 
Parameters:
path - путь к файлу
bytes - массив байтов с байтами для записи
options - опции, определяющие способ открытия файла
Returns:
путь
Throws:
IllegalArgumentException - если options содержит недопустимую комбинацию опций
IOException - если произошла ошибка ввода-вывода при записи в файл или создании файла
UnsupportedOperationException - если указана неподдерживаемая опция
FileAlreadyExistsException - Если файл с таким именем уже существует, и указана опция CREATE_NEW (дополнительное специфическое исключение)
SecurityException - В случае с предустановленным поставщиком и установленным менеджером безопасности метод checkWrite вызывается для проверки доступа к записи в файл. Метод checkDelete вызывается для проверки доступа к удалению, если файл открыт с опцией DELETE_ON_CLOSE.

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. Метод гарантирует, что файл закрывается, когда все строки были записаны (или произошла ошибка ввода-вывода или другая исключительная ситуация во время выполнения). Если произошла ошибка ввода-вывода, то она может произойти после создания или обнуления файла или после записи некоторых байтов в файл.

Parameters:
path - путь к файлу
lines - объект для итерации по последовательностям символов
cs - набор символов для кодирования
options - опции, определяющие способ открытия файла
Returns:
путь
Throws:
IllegalArgumentException - если options содержит недопустимую комбинацию опций
IOException - если произошла ошибка ввода-вывода при записи в файл или создании файла, или текст не может быть закодирован с использованием указанного набора символов
UnsupportedOperationException - если указана неподдерживаемая опция
FileAlreadyExistsException - Если файл с таким именем уже существует, и указана опция CREATE_NEW (дополнительное специфическое исключение)
SecurityException - В случае с предустановленным поставщиком и установленным менеджером безопасности метод checkWrite вызывается для проверки доступа к записи в файл. Метод checkDelete вызывается для проверки доступа к удалению, если файл открыт с опцией DELETE_ON_CLOSE.

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)
Parameters:
path - путь к файлу
lines - объект для итерации по последовательностям символов
options - опции, определяющие способ открытия файла
Returns:
путь
Throws:
IllegalArgumentException - если options содержит недопустимую комбинацию опций
IOException - если произошла ошибка ввода-вывода при записи в файл или создании файла, или текст не может быть закодирован как UTF-8
UnsupportedOperationException - если указана неподдерживаемая опция
SecurityException - В случае с предустановленным поставщиком и установленным менеджером безопасности метод checkWrite вызывается для проверки доступа к записи в файл. Метод checkDelete вызывается для проверки доступа к удалению, если файл открыт с опцией DELETE_ON_CLOSE.
Since:
1.8

writeString

public static Path writeString(Path path, CharSequence csq, OpenOption... options) throws IOException
Записать CharSequence в файл. Символы кодируются в байты с использованием UTF-8 charset.

Этот метод эквивалентен: writeString(path, csq, StandardCharsets.UTF_8, options).

Параметры:
path - путь к файлу
csq - CharSequence, который нужно записать
options - параметры, определяющие способ открытия файла
Возвращает:
путь
Исключения:
IllegalArgumentException - если options содержит недопустимую комбинацию параметров
IOException - если при записи в или создании файла произошла ошибка ввода-вывода, или текст не может быть закодирован с использованием указанного набора символов
UnsupportedOperationException - если указан неподдерживаемый параметр
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkWrite для проверки доступа на запись в файл. Метод checkDelete вызывается для проверки доступа на удаление, если файл открыт с параметром DELETE_ON_CLOSE.
С тех пор:
11

writeString

public static Path writeString(Path path, CharSequence csq, Charset cs, OpenOption... options) throws IOException
Записать CharSequence в файл. Символы кодируются в байты с использованием указанного набора символов.

Все символы записываются так, как они есть, включая разделители строк в последовательности символов. Не добавляются дополнительные символы.

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

Параметры:
path - путь к файлу
csq - CharSequence, который нужно записать
cs - набор символов, который нужно использовать для кодирования
options - параметры, определяющие способ открытия файла
Возвращает:
путь
Исключения:
IllegalArgumentException - если options содержит недопустимую комбинацию параметров
IOException - если при записи в или создании файла произошла ошибка ввода-вывода, или текст не может быть закодирован с использованием указанного набора символов
UnsupportedOperationException - если указан неподдерживаемый параметр
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkWrite для проверки доступа на запись в файл. Метод checkDelete вызывается для проверки доступа на удаление, если файл открыт с параметром DELETE_ON_CLOSE.
С тех пор:
11

list

public static Stream<Path> list(Path dir) throws IOException
Возвращает лениво заполняемый Stream, элементы которого — записи в каталоге. Перечисление не рекурсивное.

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

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

Возвращаемый поток содержит ссылку на открытый каталог. Каталог закрывается при закрытии потока.

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

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

Примечание API:
Этот метод необходимо использовать в операторе try-with-resources или аналогичной управляющей структуре, чтобы гарантировать, что открытый каталог потока будет закрыт немедленно после завершения операций потока.
Параметры:
dir - путь к каталогу
Возвращает:
Поток, описывающий содержимое каталога
Исключения:
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 может использоваться для указания необходимости посещения всех уровней.

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

Возвращаемый поток содержит ссылки на один или несколько открытых каталогов. Каталоги закрываются при закрытии потока.

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

Примечание API:
Этот метод необходимо использовать в операторе try-with-resources или аналогичной управляющей структуре, чтобы гарантировать, что открытые каталоги потока будут закрыты немедленно после завершения операций потока.
Параметры:
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, полученные как если бы относительный путь был разрешён с помощью resolving относительно start.

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

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

Возвращаемый поток содержит ссылки на один или несколько открытых каталогов. Каталоги закрываются при закрытии потока.

API Note:
Этот метод должен использоваться в блоке try-with-resources или в аналогичной управляющей структуре, чтобы гарантировать, что открытые каталоги потока будут закрыты сразу после завершения операций потока.
Parameters:
start - исходный файл
options - опции для настройки обхода
Returns:
поток Stream объектов Path
Throws:
SecurityException - Если менеджер безопасности запрещает доступ к исходному файлу. В случае с поставщиком по умолчанию вызывается метод checkRead для проверки доступа для чтения к каталогу.
IOException - если при обращении к исходному файлу возникает ошибка ввода-вывода.
Since:
1.8
See Also:
  • walk(Path, int, FileVisitOption...)

find

public static Stream<Path> find(Path start, int maxDepth, BiPredicate<Path,BasicFileAttributes> matcher, FileVisitOption... options) throws IOException
Возвращает Stream, который заполняется по мере необходимости, выполняя поиск файлов в древовидной структуре файлов, укоренённой в заданном исходном файле.

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

Возвращаемый поток содержит ссылки на один или несколько открытых каталогов. Каталоги закрываются при закрытии потока.

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

API Note:
Этот метод должен использоваться в блоке try-with-resources или в аналогичной управляющей структуре, чтобы гарантировать, что открытые каталоги потока будут закрыты сразу после завершения операций потока.
Parameters:
start - исходный файл
maxDepth - максимальное количество уровней каталогов для поиска
matcher - функция, используемая для определения того, должен ли файл быть включён в возвращаемый поток
options - опции для настройки обхода
Returns:
поток Stream объектов Path
Throws:
IllegalArgumentException - если параметр maxDepth отрицательный
SecurityException - Если менеджер безопасности запрещает доступ к исходному файлу. В случае с поставщиком по умолчанию вызывается метод checkRead для проверки доступа для чтения к каталогу.
IOException - если при обращении к исходному файлу возникает ошибка ввода-вывода.
Since:
1.8
See Also:
  • walk(Path, int, FileVisitOption...)

lines

public static Stream<String> lines(Path path, Charset cs) throws IOException
Считывает все строки из файла в виде потока. В отличие от readAllLines, этот метод не считывает все строки в список, а вместо этого заполняет их по мере потребления потока.

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

Возвращаемый поток содержит ссылку на открытый файл. Файл закрывается при закрытии потока.

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

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

API Note:
Этот метод должен использоваться в блоке try-with-resources или в аналогичной управляющей структуре, чтобы гарантировать, что открытый файл потока будет закрыт сразу после завершения операций потока.
Implementation Note:
Эта реализация поддерживает хорошую параллельную производительность потоков для стандартных кодировок UTF-8, US-ASCII и ISO-8859-1. Такие оптимальные для строк кодировки имеют свойство, что закодированные байты символа новой строки ('\n') или возврата каретки ('\r') эффективно идентифицируются среди других закодированных символов при случайном доступе к байтам файла.

Для не-оптимальных для строк кодировок разделитель потока-источника имеет плохие свойства разделения, подобные разделителю итератора или разделителю потока, возвращаемого из BufferedReader.lines(). Плохие свойства разделения могут привести к плохой производительности параллельных потоков.

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

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

lines

public static Stream<String> lines(Path path) throws IOException
Считывает все строки из файла в виде потока. Байты из файла декодируются в символы с использованием кодировки UTF-8 charset.

Возвращаемый поток содержит ссылку на открытый файл. Файл закрывается при закрытии потока.

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

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

Files.lines(path, StandardCharsets.UTF_8)
API Note:
Этот метод должен использоваться в блоке try-with-resources или в аналогичной управляющей структуре, чтобы гарантировать, что открытый файл потока будет закрыт сразу после завершения операций потока.
Parameters:
path - путь к файлу
Returns:
строки из файла в виде потока
Throws:
IOException - если возникает ошибка ввода-вывода при открытии файла
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности вызывается метод checkRead для проверки доступа для чтения к файлу.
Since:
1.8

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

Spec-Zone.ru

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