Spec-Zone.ru › OpenJDK 27

Класс Files

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

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

Начиная с версии:
1.7

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

Модификатор и тип Метод Описание
static long copy(InputStream in, Path target, CopyOption... options)
Копирует все байты из входного потока в файл.
static long copy(Path source, OutputStream out)
Копирует все байты из файла в выходной поток.
static Path copy(Path source, Path target, CopyOption... options)
Копирует файл в целевой файл.
static Path createDirectories(Path dir, FileAttribute<?>... attrs)
Создаёт каталог, предварительно создав все отсутствующие родительские каталоги.
static Path createDirectory(Path dir, FileAttribute<?>... attrs)
Создаёт новый каталог; операция завершается ошибкой, если dir указывает на существующий файл.
static Path createFile(Path path, FileAttribute<?>... attrs)
Создаёт новый пустой файл; операция завершается ошибкой, если path указывает на существующий файл.
static Path createLink(Path link, Path existing)
Создаёт новую ссылку (запись каталога) на существующий файл; операция завершается ошибкой, если link указывает на существующий файл (необязательная операция).
static Path createSymbolicLink(Path link, Path target, FileAttribute<?>... attrs)
Создаёт символическую ссылку на целевой объект; операция завершается ошибкой, если link указывает на существующий файл (необязательная операция).
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)
Обходит дерево файлов.
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 в файл.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание методов

newInputStream

public static InputStream newInputStream(Path path, OpenOption... options) throws IOException
Открывает файл и возвращает входной поток для чтения из файла. Поток не будет буферизован и не обязан поддерживать методы mark или reset. Поток будет безопасен для доступа из нескольких параллельно работающих потоков. Чтение начинается с начала файла. Возможность асинхронного закрытия и/или прерывания возвращаемого потока в значительной степени зависит от поставщика файловой системы и поэтому не определена.

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

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

newOutputStream

public static OutputStream newOutputStream(Path path, OpenOption... options) throws IOException
Открывает или создает файл и возвращает выходной поток, который можно использовать для записи байтов в файл. Полученный поток не будет буферизован. Поток будет безопасен для доступа из нескольких параллельно работающих потоков. Возможность асинхронного закрытия и/или прерывания возвращаемого потока в значительной степени зависит от поставщика файловой системы и поэтому не определена.

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

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

    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 — если произошла ошибка ввода-вывода

newByteChannel

public static SeekableByteChannel newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException
Открывает или создает файл и возвращает байтовый канал с произвольным доступом к файлу.

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

Помимо READ и WRITE, можно указать следующие параметры:

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

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

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

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

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

    Path path = ...

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

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

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

newByteChannel

public static SeekableByteChannel newByteChannel(Path path, OpenOption... options) throws IOException
Открывает или создает файл и возвращает байтовый канал с произвольным доступом к файлу.

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

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

newDirectoryStream

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

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

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

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

newDirectoryStream

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

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

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

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

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

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

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

newDirectoryStream

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

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

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

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

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

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

createFile

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

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

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

createDirectory

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

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

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

createDirectories

public static Path createDirectories(Path dir, FileAttribute<?>... attrs) throws IOException
Создает каталог, предварительно создавая все отсутствующие родительские каталоги. В отличие от метода createDirectory, исключение не выбрасывается, если каталог не удалось создать, поскольку он уже существует.

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

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

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

createTempFile

public static Path createTempFile(Path dir, String prefix, String suffix, FileAttribute<?>... attrs) throws IOException
Создает новый пустой файл в указанном каталоге, используя заданные строки префикса и суффикса для формирования его имени. Полученный Path связан с тем же FileSystem, что и указанный каталог.

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

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

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

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

createTempFile

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

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

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

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

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

createTempDirectory

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

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

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

createSymbolicLink

public static Path createSymbolicLink(Path link, Path target, FileAttribute<?>... attrs) throws IOException
Создает символическую ссылку на целевой объект; операция завершается ошибкой, если link указывает на существующий файл (необязательная операция).

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

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

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

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

createLink

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

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

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

delete

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

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

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

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

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

deleteIfExists

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

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

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

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

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

copy

public static Path copy(Path source, Path target, CopyOption... options) throws IOException
Копирует файл в целевой файл.

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

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

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

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

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

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

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

move

public static Path move(Path source, Path target, CopyOption... options) throws IOException
Перемещает или переименовывает файл, задавая целевой файл.

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

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

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

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

При перемещении файла в целевой файл копируется 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 не указан. Исключение также может быть выброшено, если параметр REPLACE_EXISTING указан, перемещение не является атомарным и целевой файл создается другим объектом примерно в момент вызова этого метода
DirectoryNotEmptyException - если указан параметр REPLACE_EXISTING, но файл нельзя заменить, поскольку он является непустым каталогом, либо если источник — непустой каталог, содержащий записи, которые потребуется переместить (необязательные конкретные исключения)
AtomicMoveNotSupportedException - если массив параметров содержит параметр ATOMIC_MOVE, но файл нельзя переместить как атомарную операцию файловой системы.
IOException - если произошла ошибка ввода-вывода

readSymbolicLink

public static Path readSymbolicLink(Path link) throws IOException
Читает цель символической ссылки (необязательная операция).

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

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

getFileStore

public static FileStore getFileStore(Path path) throws IOException
Возвращает FileStore, представляющее хранилище файлов, в котором находится файл.

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

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

isSameFile

public static boolean isSameFile(Path path, Path path2) throws IOException
Проверяет, указывают ли два пути на один и тот же файл.

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

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

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

Если оба объекта Path равны, этот метод возвращает true, не проверяя, существует ли файл.

Параметры:
path - путь к первому файлу
path2 - путь ко второму файлу
Возвращает:
позицию первого несовпадения или -1L, если несовпадений нет
Исключения:
IOException - если произошла ошибка ввода-вывода
С версии:
12

isHidden

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

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

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

probeContentType

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

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

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

Возвращаемое этим методом значение представляет собой строку с типом содержимого Multipurpose Internet Mail Extension (MIME), определенным в RFC 2045: Многоцелевые расширения интернет-почты (MIME). Часть первая: формат тел интернет-сообщений. Гарантируется, что строку можно разобрать в соответствии с грамматикой, заданной в RFC.

Параметры:
path - путь к проверяемому файлу
Возвращает:
тип содержимого файла или null, если определить тип содержимого не удалось
Исключения:
IOException - если произошла ошибка ввода-вывода
Внешние спецификации
  • RFC 2045: Многоцелевые расширения интернет-почты (MIME). Часть первая: формат тел интернет-сообщений

getFileAttributeView

public static <V extends FileAttributeView> V getFileAttributeView(Path path, Class<V> type, LinkOption... options)
Возвращает представление атрибутов файла указанного типа.

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

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

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

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

readAttributes

public static <A extends BasicFileAttributes> A readAttributes(Path path, Class<A> type, LinkOption... options) throws IOException
Читает атрибуты файла одной операцией.

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

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

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

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

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

setAttribute

public static Path setAttribute(Path path, String attribute, Object value, LinkOption... options) throws IOException
Задаёт значение атрибута файла.

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

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

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

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

Пример использования: Предположим, что мы хотим задать атрибут DOS «hidden»:

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

getAttribute

public static Object getAttribute(Path path, String attribute, LinkOption... options) throws IOException
Читает значение атрибута файла.

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

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

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

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

Пример использования: Предположим, что нам нужен идентификатор пользователя — владельца файла в системе, поддерживающей представление «unix»:

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

readAttributes

public static Map<String,Object> readAttributes(Path path, String attributes, LinkOption... options) throws IOException
Считывает набор атрибутов файла одной операцией.

Параметр attributes определяет атрибуты, которые нужно прочитать, и имеет следующий формат:

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

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

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

В следующих примерах показаны возможные значения параметра 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 — если произошла ошибка ввода-вывода

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 — если произошла ошибка ввода-вывода

setPosixFilePermissions

public static Path setPosixFilePermissions(Path path, Set<PosixFilePermission> perms) throws IOException
Задаёт разрешения POSIX для файла.

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

Параметры:
path — путь к файлу
perms — новый набор разрешений
Возвращает:
указанный путь
Выбрасывает:
UnsupportedOperationException — если связанная файловая система не поддерживает PosixFileAttributeView
ClassCastException — если набор содержит элементы, не относящиеся к типу PosixFilePermission
IOException — если произошла ошибка ввода-вывода

getOwner

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

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

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

setOwner

public static Path setOwner(Path path, UserPrincipal owner) throws IOException
Обновляет владельца файла.

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

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

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

isSymbolicLink

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

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

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

isDirectory

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

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

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

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

isRegularFile

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

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

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

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

getLastModifiedTime

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

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

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

setLastModifiedTime

public static Path setLastModifiedTime(Path path, FileTime time) throws IOException
Обновляет атрибут времени последнего изменения файла. Время файла преобразуется в эпоху и точность, поддерживаемые файловой системой. При преобразовании из более высокой точности в более низкую происходит потеря точности. Поведение этого метода при попытке задать время последнего изменения, если оно не поддерживается файловой системой или выходит за диапазон, поддерживаемый базовым хранилищем файлов, не определено. Метод может завершиться или не завершиться выбросом IOException.

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

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

size

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

exists

public static boolean exists(Path path, LinkOption... options)
Проверяет, существует ли файл.

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

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

Параметры:
path — путь к проверяемому файлу
options — параметры, указывающие, как обрабатываются символические ссылки
Возвращает:
true, если файл существует; false, если файл не существует или невозможно определить, существует ли он.
См. также:
  • notExists(Path, LinkOption...)
  • FileSystemProvider.checkAccess(Path, AccessMode...)

notExists

public static boolean notExists(Path path, LinkOption... options)
Проверяет, что файл, указанный этим путём, не существует. Этот метод предназначен для случаев, когда требуется выполнить действие после подтверждения того, что файл не существует.

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

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

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

isReadable

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

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

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

isWritable

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

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

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

isExecutable

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

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

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

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

walkFileTree

public static Path walkFileTree(Path start, Set<FileVisitOption> options, int maxDepth, FileVisitor<? super Path> visitor) throws IOException
Обходит дерево файлов.

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

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

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

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

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

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

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

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

Параметры:
start - начальный файл
options - параметры для настройки обхода
maxDepth - максимальное количество уровней каталогов для посещения
visitor - посетитель файлов, вызываемый для каждого файла
Возвращает:
начальный файл
Выбрасывает:
IllegalArgumentException - если параметр maxDepth отрицателен
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)
Иными словами, он не переходит по символическим ссылкам и посещает все уровни дерева файлов.
Параметры:
start - начальный файл
visitor - посетитель файлов, вызываемый для каждого файла
Возвращает:
начальный файл
Выбрасывает:
IOException - если метод посетителя выбрасывает ошибку ввода-вывода

newBufferedReader

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

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

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

newBufferedReader

public static BufferedReader newBufferedReader(Path path) throws IOException
Открывает файл для чтения и возвращает BufferedReader для эффективного чтения текста из файла. Байты файла декодируются в символы с использованием UTF-8 charset.

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

Files.newBufferedReader(path, StandardCharsets.UTF_8)
Параметры:
path - путь к файлу
Возвращает:
новый буферизованный считыватель с размером буфера по умолчанию для чтения текста из файла
Выбрасывает:
IOException - если при открытии файла возникает ошибка ввода-вывода
Начиная с версии:
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, если текст невозможно закодировать с использованием указанной кодировки. Из-за буферизации IOException, вызванное ошибкой кодирования (неподдерживаемым символом или некорректным вводом), может быть выброшено при записи, сбросе буфера или закрытии буферизованного записывателя.

Параметры:
path - путь к файлу
cs - кодировка для кодирования
options - параметры, определяющие способ открытия файла
Возвращает:
новый буферизованный записыватель с размером буфера по умолчанию для записи текста в файл
Выбрасывает:
IllegalArgumentException - если options содержит недопустимое сочетание параметров
IOException - если при открытии или создании файла возникает ошибка ввода-вывода
UnsupportedOperationException - если указан неподдерживаемый параметр
FileAlreadyExistsException - если путь указывает на существующий файл и задан параметр CREATE_NEW (необязательное конкретное исключение)
См. также:
  • 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 (необязательное конкретное исключение)
Начиная с версии:
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 содержит неподдерживаемый параметр копирования

copy

public static long copy(Path source, OutputStream out) throws IOException
Копирует все байты из файла в выходной поток.

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

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

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

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

readAllBytes

public static byte[] readAllBytes(Path path) throws IOException
Считывает все байты из файла. Метод гарантирует закрытие файла после чтения всех байтов или при возникновении ошибки ввода-вывода либо другого исключения времени выполнения.

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

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

readString

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

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

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

readString

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

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

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

readAllLines

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

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

  • \u000D, за которым следует \u000A, возврат каретки, за которым следует перевод строки
  • \u000A, перевод строки
  • \u000D, возврат каретки

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

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

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

readAllLines

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

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

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

write

public static Path write(Path path, byte[] bytes, OpenOption... options) throws IOException
Записывает байты в файл. Параметр options указывает, как файл создаётся или открывается. Если параметры не заданы, этот метод работает так, как если бы были указаны параметры CREATE, TRUNCATE_EXISTING и WRITE. Иными словами, он открывает файл для записи, создавая его, если он не существует, или сначала усекая существующий regular-file до размера 0. Все байты массива байтов записываются в файл. Метод гарантирует закрытие файла после записи всех байтов (или при возникновении ошибки ввода-вывода либо другого исключения времени выполнения). Если возникает ошибка ввода-вывода, это может произойти после создания или усечения файла либо после записи части байтов в файл.

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

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

write

public static Path write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options) throws IOException
Записывает текстовые строки в файл. Каждая строка представляет собой последовательность символов и записывается в файл по порядку; в конце каждой строки ставится разделитель строк платформы, определённый системным свойством line.separator. Символы кодируются в байты с использованием указанной кодировки.

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

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

write

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

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

Files.write(path, lines, StandardCharsets.UTF_8, options)
Параметры:
path - путь к файлу
lines - объект для перебора последовательностей символов
options - параметры, определяющие способ открытия файла
Возвращает:
путь
Выбрасывает:
IllegalArgumentException - если options содержит недопустимое сочетание параметров
IOException - если при записи в файл или его создании возникает ошибка ввода-вывода либо текст невозможно закодировать как UTF-8
UnsupportedOperationException - если указан неподдерживаемый параметр
Начиная с версии:
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 — если при записи в файл или его создании возникает ошибка ввода-вывода либо текст невозможно закодировать с помощью UTF-8
UnsupportedOperationException — если указан неподдерживаемый параметр
С версии:
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 — если указан неподдерживаемый параметр
С версии:
11

list

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

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

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

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

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

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

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

walk

public static Stream<Path> walk(Path start, int maxDepth, FileVisitOption... options) throws IOException
Возвращает Stream, лениво заполняемый Path при обходе дерева файлов, корнем которого является заданный начальный файл. Обход дерева файлов выполняется в глубину: каталог посещается до его записей. Элементы потока — это объекты Path, полученные так, как если бы относительный путь разрешался относительно start с помощью resolving.

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 имеет отрицательное значение
IOException — если при обращении к начальному файлу возникает ошибка ввода-вывода.
С версии:
1.8

walk

public static Stream<Path> walk(Path start, FileVisitOption... options) throws IOException
Возвращает Stream, лениво заполняемый Path при обходе дерева файлов, корнем которого является заданный начальный файл. Обход дерева файлов выполняется в глубину: каталог посещается до его записей. Элементы потока — это объекты Path, полученные так, как если бы относительный путь разрешался относительно start с помощью resolving.

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

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

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

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

find

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

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

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

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

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

lines

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

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

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

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

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

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

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

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

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

lines

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

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

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

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

Files.lines(path, StandardCharsets.UTF_8)
Примечание к API:
Этот метод необходимо использовать в операторе try-with-resources или аналогичной управляющей конструкции, чтобы гарантировать своевременное закрытие открытого файла потока после завершения операций с потоком.
Параметры:
path — путь к файлу
Возвращает:
строки из файла в виде Stream
Исключения:
IOException — если при открытии файла возникает ошибка ввода-вывода
С версии:
1.8

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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