Spec-Zone.ru › OpenJDK 21

Файлы классов

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

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

С тех пор:
1.7

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

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

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

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

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

newInputStream

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

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

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

newOutputStream

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

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

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

    Path path = ...

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

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

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

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

newByteChannel

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

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

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

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

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

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

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

    Path path = ...

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

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

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

newByteChannel

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

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

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

newDirectoryStream

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

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

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

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

newDirectoryStream

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

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

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

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

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

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

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

newDirectoryStream

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

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

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

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

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

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

createFile

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

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

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

Создать директорию

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

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

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

Создать директории

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

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

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

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

Создать временный файл

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

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

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

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

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

Создать временный файл

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

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

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

createTempDirectory

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

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

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

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

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

createTempDirectory

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

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

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

createSymbolicLink

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

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

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

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

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

createLink

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

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

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

delete

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

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

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

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

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

deleteIfExists

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

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

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

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

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

copy

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

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

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

Options
Option Описание
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());
Parameters:
source - путь к файлу для копирования
target - путь к целевому файлу (может быть связан с другим поставщиком, чем путь к исходному файлу)
options - параметры, определяющие, как должно быть выполнено копирование
Returns:
путь к целевому файлу
Throws:
UnsupportedOperationException - если массив содержит параметр копирования, который не поддерживается
FileAlreadyExistsException - если целевой файл существует, но не может быть заменён, потому что параметр REPLACE_EXISTING не указан (необязательная специфическая ошибка)
DirectoryNotEmptyException - параметр REPLACE_EXISTING указан, но файл не может быть заменён, потому что это непустой каталог (необязательная специфическая ошибка)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности вызывается метод checkRead для проверки доступа к чтению исходного файла, метод checkWrite вызывается для проверки доступа к записи в целевой файл. Если копируется символическая ссылка, менеджер безопасности вызывается для проверки LinkPermission("symbolic").

переместить

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

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

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

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

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

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

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

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

прочитатьСимволическуюСсылка

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

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

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

getFileStore

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

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

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

isSameFile

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

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

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

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

mismatch

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

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

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

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

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

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

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

isHidden

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

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

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

probeContentType

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

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

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

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

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

readAttributes

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

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

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

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

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

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

setAttribute

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

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

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

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

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

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

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

getAttribute

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

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

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

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

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

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

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

readAttributes

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

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

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

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

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

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

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

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

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

getPosixFilePermissions

public static Set<PosixFilePermission> getPosixFilePermissions(Path path, LinkOption... options) throws IOException
Возвращает права доступа POSIX файла.

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

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

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

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

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

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

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

getOwner

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

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

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

setOwner

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

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

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

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

isSymbolicLink

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

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

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

isDirectory

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

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

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

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

isRegularFile

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

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

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

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

getLastModifiedTime

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

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

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

setLastModifiedTime

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

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

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

size

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

exists

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

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

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

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

notExists

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

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

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

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

isReadable

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

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

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

isWritable

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

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

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

isExecutable

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

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

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

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

walkFileTree

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

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

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

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

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

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

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

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

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

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

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

walkFileTree

public static Path walkFileTree(Path start, FileVisitor<? super Path> visitor) throws IOException
Проходит по дереву файлов.

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

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

newBufferedReader

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

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

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

newBufferedReader

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

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

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

newBufferedWriter

public static BufferedWriter newBufferedWriter(Path path, Charset cs, OpenOption... options) throws IOException
Открывает или создает файл для записи, возвращая объект, который может быть использован для записи текста в файл эффективным образом. Параметр options определяет, как файл создается или открывается. Если опции отсутствуют, этот метод работает так, как если бы присутствовали опции CREATE, TRUNCATE_EXISTING и WRITE. Другими словами, он открывает файл для записи, создавая его, если он не существует, или изначально обнуляя существующий regular-file до размера 0, если он существует.

Методы записи текста могут выбросить IOException, если текст не может быть закодирован с использованием указанного набора символов. Из-за буферизации, ошибка IOException, вызванная ошибкой кодирования (непреобразуемый символ или некорректный ввод), может быть выброшена при записи, сбросе или закрытии буферизованного объекта записи.

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

newBufferedWriter

public static BufferedWriter newBufferedWriter(Path path, OpenOption... options) throws IOException
Открывает или создает файл для записи, возвращая буферизованный объект записи для эффективной записи текста в файл. Текст кодируется в байты для записи с использованием набора символов UTF-8 charset.

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

Files.newBufferedWriter(path, StandardCharsets.UTF_8, options)
Parameters:
path - путь к файлу
options - опции, определяющие способ открытия файла
Returns:
новый буферизованный объект записи с заданным по умолчанию размером буфера для записи текста в файл
Throws:
IllegalArgumentException - если options содержит недопустимую комбинацию опций
IOException - если произошла ошибка ввода-вывода при открытии или создании файла
UnsupportedOperationException - если указана неузнанная опция
FileAlreadyExistsException - Если файл с таким именем уже существует и указана опция CREATE_NEW (опциональное специфическое исключение)
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkWrite для проверки доступа на запись в файл. Метод checkDelete вызывается для проверки доступа на удаление, если файл открыт с опцией DELETE_ON_CLOSE.
Since:
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);
    }
Parameters:
in - поток ввода для чтения
target - путь к файлу
options - опции, определяющие способ копирования
Returns:
количество прочитанных или записанных байтов
Throws:
IOException - если произошла ошибка ввода-вывода при чтении или записи
FileAlreadyExistsException - если целевой файл существует, но не может быть заменён, потому что опция REPLACE_EXISTING не указана (опциональное специфическое исключение)
DirectoryNotEmptyException - опция REPLACE_EXISTING указана, но файл не может быть заменён, потому что он является непустой директорией (опциональное специфическое исключение)
UnsupportedOperationException - если options содержит опцию копирования, которая не поддерживается
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается метод checkWrite для проверки доступа на запись в файл. Если указана опция REPLACE_EXISTING, вызывается метод checkDelete менеджера безопасности для проверки возможности удаления существующего файла.

copy

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

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

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

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

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

readAllBytes

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

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

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

readString

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

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

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

readString

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

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

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

readAllLines

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

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

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

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

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

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

readAllLines

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

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

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

write

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

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

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

write

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

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

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

write

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

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

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

writeString

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

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

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

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

list

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

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

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

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

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

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

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

find

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

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

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

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

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

lines

public static Stream<String> lines(Path path, Charset cs) throws IOException
Считывает все строки из файла в виде 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 - если при открытии файла произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности вызывается метод checkRead для проверки доступа на чтение к файлу.
С:
1.8
См. также:
  • readAllLines(Path, Charset)
  • newBufferedReader(Path, Charset)
  • BufferedReader.lines()

lines

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

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

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

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

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

© 1993, 2023, 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/21/docs/api/java.base/java/nio/file/Files.html

Spec-Zone.ru

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