Spec-Zone.ru › OpenJDK 25

Класс 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)
Создаёт новый каталог.
static Path createFile(Path path, FileAttribute<?>... attrs)
Создаёт новый пустой файл и завершается ошибкой, если файл уже существует.
static Path createLink(Path link, Path existing)
Создаёт новую ссылку (запись каталога) для существующего файла (необязательная операция).
static Path createSymbolicLink(Path link, Path target, FileAttribute<?>... attrs)
Создаёт символическую ссылку на целевой объект (необязательная операция).
static Path createTempDirectory(String prefix, FileAttribute<?>... attrs)
Создаёт новый каталог в каталоге по умолчанию для временных файлов, используя заданный префикс для формирования его имени.
static Path createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs)
Создаёт новый каталог в указанном каталоге, используя заданный префикс для формирования его имени.
static Path createTempFile(String prefix, String suffix, FileAttribute<?>... attrs)
Создаёт пустой файл в каталоге по умолчанию для временных файлов, используя заданные префикс и суффикс для формирования его имени.
static Path createTempFile(Path dir, String prefix, String suffix, FileAttribute<?>... attrs)
Создаёт новый пустой файл в указанном каталоге, используя заданные строки префикса и суффикса для формирования его имени.
static void delete(Path path)
Удаляет файл.
static boolean deleteIfExists(Path path)
Удаляет файл, если он существует.
static boolean exists(Path path, LinkOption... options)
Проверяет, существует ли файл.
static Stream<Path> find(Path start, int maxDepth, BiPredicate<Path, BasicFileAttributes> matcher, FileVisitOption... options)
Возвращает Stream, которая заполняется по мере необходимости значениями Path при поиске файлов в дереве файлов, корнем которого является заданный начальный файл.
static Object getAttribute(Path path, String attribute, LinkOption... options)
Считывает значение атрибута файла.
static <V extends FileAttributeView>
V
getFileAttributeView(Path path, Class<V> type, LinkOption... options)
Возвращает представление атрибутов файла указанного типа.
static FileStore getFileStore(Path path)
Возвращает FileStore, представляющий хранилище файлов, в котором находится файл.
static FileTime getLastModifiedTime(Path path, LinkOption... options)
Возвращает время последнего изменения файла.
static UserPrincipal getOwner(Path path, LinkOption... options)
Возвращает владельца файла.
static Set<PosixFilePermission> getPosixFilePermissions(Path path, LinkOption... options)
Возвращает разрешения POSIX для файла.
static boolean isDirectory(Path path, LinkOption... options)
Проверяет, является ли файл каталогом.
static boolean isExecutable(Path path)
Проверяет, является ли файл исполняемым.
static boolean isHidden(Path path)
Определяет, считается ли файл скрытым.
static boolean isReadable(Path path)
Проверяет, доступен ли файл для чтения.
static boolean isRegularFile(Path path, LinkOption... options)
Проверяет, является ли файл обычным файлом с непрозрачным содержимым.
static boolean isSameFile(Path path, Path path2)
Проверяет, указывают ли два пути на один и тот же файл.
static boolean isSymbolicLink(Path path)
Проверяет, является ли файл символической ссылкой.
static boolean isWritable(Path path)
Проверяет, доступен ли файл для записи.
static Stream<String> lines(Path path)
Считывает все строки файла в виде Stream.
static Stream<String> lines(Path path, Charset cs)
Считывает все строки файла в виде Stream.
static Stream<Path> list(Path dir)
Возвращает лениво заполняемый Stream, элементами которого являются записи каталога.
static long mismatch(Path path, Path path2)
Находит и возвращает позицию первого несовпадающего байта в содержимом двух файлов или -1L, если несовпадений нет.
static Path move(Path source, Path target, CopyOption... options)
Перемещает файл в целевой файл или переименовывает его.
static BufferedReader newBufferedReader(Path path)
Открывает файл для чтения и возвращает BufferedReader для эффективного чтения текста из файла.
static BufferedReader newBufferedReader(Path path, Charset cs)
Открывает файл для чтения и возвращает BufferedReader, который можно использовать для эффективного чтения текста из файла.
static BufferedWriter newBufferedWriter(Path path, Charset cs, OpenOption... options)
Открывает файл для записи или создаёт его и возвращает BufferedWriter, который можно использовать для эффективной записи текста в файл.
static BufferedWriter newBufferedWriter(Path path, OpenOption... options)
Открывает файл для записи или создаёт его и возвращает BufferedWriter для эффективной записи текста в файл.
static SeekableByteChannel newByteChannel(Path path, OpenOption... options)
Открывает файл или создаёт его и возвращает канал байтов с поддержкой позиционирования для доступа к файлу.
static SeekableByteChannel newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)
Открывает файл или создаёт его и возвращает канал байтов с поддержкой позиционирования для доступа к файлу.
static DirectoryStream<Path> newDirectoryStream(Path dir)
Открывает каталог и возвращает DirectoryStream для перебора всех записей каталога.
static DirectoryStream<Path> newDirectoryStream(Path dir, String glob)
Открывает каталог и возвращает DirectoryStream для перебора записей каталога.
static DirectoryStream<Path> newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter)
Открывает каталог и возвращает DirectoryStream для перебора записей каталога.
static InputStream newInputStream(Path path, OpenOption... options)
Открывает файл и возвращает входной поток для чтения из файла.
static OutputStream newOutputStream(Path path, OpenOption... options)
Открывает файл или создаёт его и возвращает выходной поток, который можно использовать для записи байтов в файл.
static boolean notExists(Path path, LinkOption... options)
Проверяет, что файл, на который указывает этот путь, не существует.
static String probeContentType(Path path)
Определяет тип содержимого файла.
static byte[] readAllBytes(Path path)
Считывает все байты из файла.
static List<String> readAllLines(Path path)
Считывает все строки из файла.
static List<String> readAllLines(Path path, Charset cs)
Считывает все строки из файла.
static <A extends BasicFileAttributes>
A
readAttributes(Path path, Class<A> type, LinkOption... options)
Считывает атрибуты файла одной операцией.
static Map<String,Object> readAttributes(Path path, String attributes, LinkOption... options)
Считывает набор атрибутов файла одной операцией.
static String readString(Path path)
Считывает всё содержимое файла в строку, декодируя байты в символы с использованием UTF-8 charset.
static String readString(Path path, Charset cs)
Считывает все символы из файла в строку, декодируя байты в символы с использованием указанной кодировки.
static Path readSymbolicLink(Path link)
Считывает цель символической ссылки (необязательная операция).
static Path setAttribute(Path path, String attribute, Object value, LinkOption... options)
Устанавливает значение атрибута файла.
static Path setLastModifiedTime(Path path, FileTime time)
Обновляет атрибут времени последнего изменения файла.
static Path setOwner(Path path, UserPrincipal owner)
Изменяет владельца файла.
static Path setPosixFilePermissions(Path path, Set<PosixFilePermission> perms)
Устанавливает разрешения POSIX для файла.
static long size(Path path)
Возвращает размер файла (в байтах).
static Stream<Path> walk(Path start, int maxDepth, FileVisitOption... options)
Возвращает Stream, которая заполняется по мере необходимости значениями Path при обходе дерева файлов, корнем которого является заданный начальный файл.
static Stream<Path> walk(Path start, FileVisitOption... options)
Возвращает Stream, которая заполняется по мере необходимости значениями Path при обходе дерева файлов, корнем которого является заданный начальный файл.
static Path walkFileTree(Path start, FileVisitor<? super Path> visitor)
Обходит дерево файлов.
static Path walkFileTree(Path start, Set<FileVisitOption> options, int maxDepth, FileVisitor<? super Path> visitor)
Обходит дерево файлов.
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

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

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. Иными словами, файл открывается для записи; если файл не существует, он создаётся, а если существует, то сначала regular-file усекается до размера 0.

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

    Path path = ...

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

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

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

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

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
Создаёт новый пустой файл; если файл уже существует, операция завершается неудачей. Проверка существования файла и создание нового файла, если он не существует, выполняются как одна операция, атомарная относительно всех прочих действий файловой системы, которые могут повлиять на каталог.

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

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

createDirectory

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

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

Параметры:
dir — создаваемый каталог
attrs — необязательный список файловых атрибутов, которые следует атомарно задать при создании каталога
Возвращает:
каталог
Исключения:
UnsupportedOperationException — если массив содержит атрибут, который нельзя атомарно задать при создании каталога
FileAlreadyExistsException — если каталог не удалось создать по другой причине, поскольку файл с таким именем уже существует (необязательное специфичное исключение)
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
Создает символическую ссылку на целевой объект (необязательная операция).

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

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

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

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

createLink

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

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

Параметры:
link — создаваемая ссылка (запись каталога)
existing — путь к существующему файлу
Возвращает:
путь к ссылке (записи каталога)
Исключения:
UnsupportedOperationException — если реализация не поддерживает добавление существующего файла в каталог
FileAlreadyExistsException — если запись не удалось создать по другой причине, поскольку файл с таким именем уже существует (необязательное специализированное исключение)
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: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. Гарантируется, что строку можно разобрать согласно грамматике, заданной в RFC.

Параметры:
path — путь к проверяемому файлу
Возвращает:
Тип содержимого файла или null, если тип содержимого определить не удалось
Исключения:
IOException — если произошла ошибка ввода-вывода
Внешние спецификации
  • RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies

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, возврат каретки

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

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

Параметры:
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, полученные так, как если бы имя записи каталога было resolving относительно dir. Некоторые файловые системы содержат специальные ссылки на сам каталог и на его родительский каталог. Записи, представляющие эти ссылки, не включаются.

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

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

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

Если при обращении к каталогу после возврата этого метода возникает 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, полученные так, как если бы относительный путь был resolving относительно start.

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

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

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

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

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

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

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

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

walk

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

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

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 получается так, как если бы относительный путь был resolving относительно start, и включается в возвращаемый 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/file/Files.html

Spec-Zone.ru

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