Класс Файлы
public final class Files extends Object
В большинстве случаев методы, определённые здесь, будут делегировать операции с файлами соответствующему поставщику файловой системы.
- Since:
- 1.7
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
static long |
copy |
Копирует все байты из входного потока в файл. |
static long |
copy |
Копирует все байты из файла в выходной поток. |
static Path |
copy |
Копирует файл в целевой файл. |
static Path |
createDirectories |
Создает директорию, предварительно создавая все несуществующие родительские директории. |
static Path |
createDirectory |
Создаёт новую директорию. |
static Path |
createFile |
Создаёт новый и пустой файл, при отказе если файл уже существует. |
static Path |
createLink |
Создаёт новую ссылку (запись каталога) для существующего файла (необязательная операция). |
static Path |
createSymbolicLink |
Создаёт символическую ссылку на целевой файл (необязательная операция). |
static Path |
createTempDirectory |
Создаёт новую директорию в стандартном временном каталоге, используя указанный префикс для генерации её имени. |
static Path |
createTempDirectory |
Создаёт новую директорию в указанной директории, используя указанный префикс для генерации её имени. |
static Path |
createTempFile |
Создаёт пустой файл в стандартном временном каталоге, используя указанный префикс и суффикс для генерации его имени. |
static Path |
createTempFile |
Создаёт новый пустой файл в указанной директории, используя указанные префикс и суффикс для генерации его имени. |
static void |
delete |
Удаляет файл. |
static boolean |
deleteIfExists |
Удаляет файл, если он существует. |
static boolean |
exists |
Проверяет, существует ли файл. |
static Stream<Path> |
find |
Возвращает Stream, который заполняется лениво
Path путем поиска файлов в дереве файлов, укоренённом в заданном начальном файле. |
static Object |
getAttribute |
Считывает значение атрибута файла. |
static <V extends FileAttributeView> |
getFileAttributeView |
Возвращает представление атрибута файла заданного типа. |
static FileStore |
getFileStore |
Возвращает FileStore, представляющий хранилище файлов, где расположен файл. |
static FileTime |
getLastModifiedTime |
Возвращает время последнего изменения файла. |
static UserPrincipal |
getOwner |
Возвращает владельца файла. |
static Set<PosixFilePermission> |
getPosixFilePermissions |
Возвращает разрешения POSIX файла. |
static boolean |
isDirectory |
Проверяет, является ли файл директорией. |
static boolean |
isExecutable |
Проверяет, может ли файл быть запущен. |
static boolean |
isHidden |
Указывает, считается ли файл скрытым. |
static boolean |
isReadable |
Проверяет, может ли файл быть прочитан. |
static boolean |
isRegularFile |
Проверяет, является ли файл обычным файлом с непрозрачным содержимым. |
static boolean |
isSameFile |
Проверяет, указывают ли два пути на один и тот же файл. |
static boolean |
isSymbolicLink |
Проверяет, является ли файл символической ссылкой. |
static boolean |
isWritable |
Проверяет, может ли файл быть записан. |
static Stream<String> |
lines |
Считывает все строки из файла в виде Stream. |
static Stream<String> |
lines |
Считывает все строки из файла в виде Stream. |
static Stream<Path> |
list |
Возвращает лениво заполняемый Stream, элементы которого представляют собой записи в каталоге. |
static long |
mismatch |
Находит и возвращает позицию первого несовпадающего байта в содержимом двух файлов или -1L, если несоответствие отсутствует. |
static Path |
move |
Перемещает или переименовывает файл в целевой файл. |
static BufferedReader |
newBufferedReader |
Открывает файл для чтения, возвращая BufferedReader для эффективного чтения текста из файла. |
static BufferedReader |
newBufferedReader |
Открывает файл для чтения, возвращая BufferedReader для эффективного чтения текста из файла. |
static BufferedWriter |
newBufferedWriter |
Открывает или создаёт файл для записи, возвращая BufferedWriter для эффективной записи текста в файл. |
static BufferedWriter |
newBufferedWriter |
Открывает или создаёт файл для записи, возвращая BufferedWriter для эффективной записи текста в файл. |
static SeekableByteChannel |
newByteChannel |
Открывает или создаёт файл, возвращая доступный для поиска байтовый канал для доступа к файлу. |
static SeekableByteChannel |
newByteChannel |
Открывает или создаёт файл, возвращая доступный для поиска байтовый канал для доступа к файлу. |
static DirectoryStream<Path> |
newDirectoryStream |
Открывает директорию, возвращая DirectoryStream для итерации по всем записям в директории. |
static DirectoryStream<Path> |
newDirectoryStream |
Открывает директорию, возвращая DirectoryStream для итерации по записям в каталоге. |
static DirectoryStream<Path> |
newDirectoryStream |
Открывает директорию, возвращая DirectoryStream для итерации по записям в каталоге. |
static InputStream |
newInputStream |
Открывает файл, возвращая поток ввода для чтения из файла. |
static OutputStream |
newOutputStream |
Открывает или создаёт файл, возвращая поток вывода, который можно использовать для записи байтов в файл. |
static boolean |
notExists |
Проверяет, не существует ли файл, на который указывает этот путь. |
static String |
probeContentType |
Определяет тип содержимого файла. |
static byte[] |
readAllBytes |
Считывает все байты из файла. |
static List<String> |
readAllLines |
Считывает все строки из файла. |
static List<String> |
readAllLines |
Считывает все строки из файла. |
static <A extends BasicFileAttributes> |
readAttributes |
Считывает атрибуты файла как пакетную операцию. |
static Map<String, |
readAttributes |
Считывает набор атрибутов файла как пакетную операцию. |
static String |
readString |
|
static String |
readString |
Считывает все символы из файла в строку, декодируя из байтов в символы с использованием указанного набора символов. |
static Path |
readSymbolicLink |
Считывает целевой файл символической ссылки (необязательная операция). |
static Path |
setAttribute |
Устанавливает значение атрибута файла. |
static Path |
setLastModifiedTime |
Обновляет атрибут времени последнего изменения файла. |
static Path |
setOwner |
Обновляет владельца файла. |
static Path |
setPosixFilePermissions |
Устанавливает разрешения POSIX файла. |
static long |
size |
Возвращает размер файла (в байтах). |
static Stream<Path> |
walk |
Возвращает Stream, который лениво заполняется
Path путем обхода дерева файлов, укорененного в заданном начальном файле. |
static Stream<Path> |
walk |
Возвращает Stream, который лениво заполняется
Path путем обхода дерева файлов, укорененного в заданном начальном файле. |
static Path |
walkFileTree |
Обходит дерево файлов. |
static Path |
walkFileTree |
Обходит дерево файлов. |
static Path |
write |
Записывает байты в файл. |
static Path |
write |
Записывает строки текста в файл. |
static Path |
write |
Записывает строки текста в файл. |
static Path |
writeString |
Записывает CharSequence в файл. |
static Path |
writeString |
Записывает CharSequence в файл. |
Подробности методов
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, могут присутствовать следующие опции:
| Option | Описание |
|---|---|
APPEND | Если эта опция присутствует, то файл открывается для записи, и каждое обращение к методу канала write сначала передвигает позицию к концу файла, а затем записывает запрошенные данные. Будет ли перемещение позиции и запись данных выполняться в одной атомарной операции, зависит от системы и поэтому не определено. Эта опция не может использоваться совместно с опциями READ или TRUNCATE_EXISTING. |
TRUNCATE_EXISTING | Если эта опция присутствует, то существующий файл обрезается до размера 0 байт. Эта опция игнорируется, когда файл открывается только для чтения. |
CREATE_NEW | Если эта опция присутствует, то создаётся новый файл, если файла с таким именем уже нет или он является символической ссылкой. При создании файла проверка существования файла и создание файла, если он не существует, атомарны по отношению к другим операциям с файловой системой. Эта опция игнорируется, когда файл открывается только для чтения. |
CREATE | Если эта опция присутствует, то существующий файл открывается, если он существует, в противном случае создаётся новый файл. Эта опция игнорируется, если также присутствует опция CREATE_NEW или файл открывается только для чтения. |
DELETE_ON_CLOSE | Когда эта опция присутствует, реализация делает лучшую попытку удалить файл при закрытии с помощью метода close. Если метод close не вызывается, делается лучшая попытка удалить файл при завершении виртуальной машины Java. |
SPARSE | При создании нового файла эта опция является подсказкой, что новый файл будет разряженным. Эта опция игнорируется, когда не создаётся новый файл. |
SYNC | Требует, чтобы каждое обновление содержимого или метаданных файла синхронно записывалось на базовое устройство хранения. (см. Целостность синхронизированного ввода-вывода файлов). |
DSYNC | Требует, чтобы каждое обновление содержимого файла синхронно записывалось на базовое устройство хранения. (см. Целостность синхронизированного ввода-вывода файлов). |
Реализация может также поддерживать дополнительные опции, специфичные для реализации.
Параметр attrs является необязательным file-attributes, для атомарной установки при создании нового файла.
В случае поставщика по умолчанию возвращаемый байтовый канал поиска — это FileChannel.
Примеры использования:
Path path = ...
// open file for reading
ReadableByteChannel rbc = Files.newByteChannel(path, EnumSet.of(READ)));
// open file for writing to the end of an existing file, creating
// the file if it doesn't already exist
WritableByteChannel wbc = Files.newByteChannel(path, EnumSet.of(CREATE,APPEND));
// create file with initial permissions, opening it for both reading and writing
FileAttribute<Set<PosixFilePermission>> perms = ...
SeekableByteChannel sbc =
Files.newByteChannel(path, EnumSet.of(CREATE_NEW,READ,WRITE), perms);
- Параметры:
-
path- путь к файлу для открытия или создания -
options- опции, определяющие способ открытия файла -
attrs- необязательный список атрибутов файла для атомарной установки при создании файла - Возвращает:
- новый байтовый канал поиска
- Исключение:
-
IllegalArgumentException- если набор содержит некорректную комбинацию опций -
UnsupportedOperationException- если указана неподдерживаемая опция открытия или массив содержит атрибуты, которые не могут быть установлены атомарно при создании файла -
FileAlreadyExistsException- Если файл с таким именем уже существует, и опцияCREATE_NEWуказана и файл открывается для записи (дополнительное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае использования поставщика по умолчанию и при установленной менеджера безопасности, вызывается методcheckReadдля проверки доступа к чтению пути, если файл открывается для чтения. МетодcheckWriteвызывается для проверки доступа к записи в путь, если файл открывается для записи. МетодcheckDeleteвызывается для проверки доступа к удалению, если файл открывается с опциейDELETE_ON_CLOSE. - См. также:
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:
newDirectoryStream
public static DirectoryStream<Path> newDirectoryStream(Path dir) throws IOException
DirectoryStream для итерирования по всем элементам в директории. Элементы, возвращаемые итератором потока директории iterator, имеют тип
Path, каждый из которых представляет собой элемент в директории. Объекты Path получаются как результат resolving имени элемента директории относительно dir. Если не используется конструкция try-with-resources, то метод close потока директории должен быть вызван после завершения итерации для освобождения ресурсов, удерживаемых для открытой директории.
Если реализация поддерживает операции с элементами в директории, выполняемые без гонок, то возвращаемый поток директории является SecureDirectoryStream.
- Parameters:
-
dir- путь к директории - Returns:
- новый и открытый объект
DirectoryStream - Throws:
-
NotDirectoryException- если файл не может быть открыт, так как он не является директорией (возможная специфичная ошибка) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае использования провайдера по умолчанию и установленного менеджера безопасности, вызывается методcheckReadдля проверки доступа для чтения к директории.
newDirectoryStream
public static DirectoryStream<Path> newDirectoryStream(Path dir, String glob) throws IOException
DirectoryStream для итерирования по элементам в директории. Элементы, возвращаемые итератором потока директории iterator, имеют тип
Path, каждый из которых представляет собой элемент в директории. Объекты Path получаются как результат resolving имени элемента директории относительно dir. Элементы, возвращаемые итератором, отфильтровываются путём соответствия String представления имени файла заданному шаблону глоббинга. Например, предположим, что мы хотим итерироваться по файлам, заканчивающимся на ".java", в директории:
Path dir = ...
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.java")) {
:
}
Шаблон глоббинга задаётся методом getPathMatcher.
Если не используется конструкция try-with-resources, то метод close потока директории должен быть вызван после завершения итерации для освобождения ресурсов, удерживаемых для открытой директории.
Если реализация поддерживает операции с элементами в директории, выполняемые без гонок, то возвращаемый поток директории является SecureDirectoryStream.
- Parameters:
-
dir- путь к директории -
glob- шаблон глоббинга - Returns:
- новый и открытый объект
DirectoryStream - Throws:
-
PatternSyntaxException- если шаблон некорректен -
NotDirectoryException- если файл не может быть открыт, так как он не является директорией (возможная специфичная ошибка) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае использования провайдера по умолчанию и установленного менеджера безопасности, вызывается методcheckReadдля проверки доступа для чтения к директории.
newDirectoryStream
public static DirectoryStream<Path> newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter) throws IOException
DirectoryStream для итерирования по элементам в директории. Элементы, возвращаемые итератором потока директории iterator, имеют тип
Path, каждый из которых представляет собой элемент в директории. Объекты Path получаются как результат resolving имени элемента директории относительно dir. Элементы, возвращаемые итератором, отфильтровываются заданным filter. Если не используется конструкция try-with-resources, то метод close потока директории должен быть вызван после завершения итерации для освобождения ресурсов, удерживаемых для открытой директории.
Если фильтр завершается из-за неуловленной ошибки или исключения времени выполнения, то оно передаётся методам hasNext или next. Если выбрасывается исключение
IOException, то методы hasNext или
next выбрасывают DirectoryIteratorException с IOException в качестве причины.
Если реализация поддерживает операции с элементами в директории, выполняемые без гонок, то возвращаемый поток директории является SecureDirectoryStream.
Пример использования: Предположим, что мы хотим итерироваться по файлам в директории, которые больше 8К.
DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<Path>() {
public boolean accept(Path file) throws IOException {
return (Files.size(file) > 8192L);
}
};
Path dir = ...
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, filter)) {
:
}
- Parameters:
-
dir- путь к директории -
filter- фильтр потока директории - Returns:
- новый и открытый объект
DirectoryStream - Throws:
-
NotDirectoryException- если файл не может быть открыт, так как он не является директорией (возможная специфичная ошибка) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае использования провайдера по умолчанию и установленного менеджера безопасности, вызывается методcheckReadдля проверки доступа для чтения к директории.
createFile
public static Path createFile(Path path, FileAttribute<?>... attrs) throws IOException
Параметр attrs — это необязательные file-attributes, которые устанавливаются атомарно при создании файла. Каждый атрибут идентифицируется по имени name. Если в массиве указано более одного атрибута с одинаковым именем, то все, кроме последнего, игнорируются.
- Parameters:
-
path- путь к файлу для создания -
attrs- необязательный список атрибутов файла, которые необходимо установить атомарно при создании файла - Returns:
- файл
- Throws:
-
UnsupportedOperationException- если массив содержит атрибут, который не может быть установлен атомарно при создании файла -
FileAlreadyExistsException- Если файл с таким именем уже существует (возможная специфичная ошибка) -
IOException- если произошла ошибка ввода-вывода или родительская директория не существует -
SecurityException- В случае использования провайдера по умолчанию и установленного менеджера безопасности, вызывается методcheckWriteдля проверки доступа на запись к новому файлу.
создание каталога
public static Path createDirectory(Path dir, FileAttribute<?>... attrs) throws IOException
createDirectories следует использовать в тех случаях, когда необходимо предварительно создать все отсутствующие родительские каталоги.
Параметр attrs — это необязательный список file-attributes для атомарного задания при создании каталога. Каждый атрибут определяется по своему name. Если в массиве содержится более одного атрибута с одинаковым именем, все, кроме последнего, игнорируются.
- Параметры:
-
dir— каталог для создания -
attrs— необязательный список атрибутов файла для атомарного задания при создании каталога - Возвращает:
- каталог
- Исключения:
-
UnsupportedOperationException— если массив содержит атрибут, который не может быть атомарно задан при создании каталога -
FileAlreadyExistsException— если каталог не может быть создан, потому что файл с таким именем уже существует (необязательное специфическое исключение) -
IOException— если произошла ошибка ввода-вывода или родительский каталог не существует -
SecurityException— в случае с поставщиком по умолчанию и установленным менеджером безопасности вызывается методcheckWriteдля проверки доступа на запись к новому каталогу.
создание каталогов
public static Path createDirectories(Path dir, FileAttribute<?>... attrs) throws IOException
createDirectory, исключение не выбрасывается, если каталог не может быть создан, потому что он уже существует.
Параметр attrs — это необязательный список file-attributes для атомарного задания при создании отсутствующих каталогов. Каждый атрибут файла определяется по своему name. Если в массиве содержится более одного атрибута с одинаковым именем, все, кроме последнего, игнорируются.
Если этот метод завершается неудачей, то это может произойти после создания некоторых, но не всех, родительских каталогов.
- Параметры:
-
dir— каталог для создания -
attrs— необязательный список атрибутов файла для атомарного задания при создании каталога - Возвращает:
- каталог
- Исключения:
-
UnsupportedOperationException— если массив содержит атрибут, который не может быть атомарно задан при создании каталога -
FileAlreadyExistsException— еслиdirсуществует, но не является каталогом (необязательное специфическое исключение) -
IOException— если произошла ошибка ввода-вывода -
SecurityException— в случае с поставщиком по умолчанию и установленным менеджером безопасности вызывается методcheckWriteперед попыткой создания каталога и егоcheckReadдля каждого родительского каталога, который проверяется. Еслиdirне является абсолютным путём, то может потребоваться вызов егоtoAbsolutePathдля получения абсолютного пути. Это может вызвать метод менеджера безопасностиcheckPropertyAccessдля проверки доступа к системной переменнойuser.dir
создание временного файла
public static Path createTempFile(Path dir, String prefix, String suffix, FileAttribute<?>... attrs) throws IOException
Path связан с тем же FileSystem, что и данный каталог.
Подробности построения имени файла зависят от реализации и поэтому не указаны. По возможности, prefix и suffix используются для построения кандидатов имен аналогично методу File.createTempFile(String,String,File).
Как и в случае с методами File.createTempFile, этот метод является лишь частью механизма временных файлов. При использовании в качестве рабочих файлов созданный файл может быть открыт с помощью опции DELETE_ON_CLOSE, чтобы файл был удалён при вызове соответствующего метода close. В качестве альтернативы можно использовать shutdown-hook или механизм File.deleteOnExit() для автоматического удаления файла.
Параметр attrs — это необязательный список file-attributes для атомарного задания при создании файла. Каждый атрибут определяется по своему name. Если в массиве содержится более одного атрибута с одинаковым именем, все, кроме последнего, игнорируются. Если атрибуты файлов не указаны, то у результирующего файла могут быть более жёсткие разрешения доступа по сравнению с файлами, созданными методом File.createTempFile(String,String,File).
- Параметры:
-
dir— путь к каталогу, в котором создать файл -
prefix— строка префикса, используемая при генерации имени файла; может бытьnull -
suffix— строка суффикса, используемая при генерации имени файла; может бытьnull, в этом случае используется ".tmp" -
attrs— необязательный список атрибутов файла для атомарного задания при создании файла - Возвращает:
- путь к только что созданному файлу, который не существовал до вызова этого метода
- Исключения:
-
IllegalArgumentException— если префикс или суффикс не могут быть использованы для генерации имени кандидата файла -
UnsupportedOperationException— если массив содержит атрибут, который не может быть атомарно задан при создании каталога -
IOException— если произошла ошибка ввода-вывода илиdirне существует -
SecurityException— в случае с поставщиком по умолчанию и установленным менеджером безопасности вызывается методcheckWriteдля проверки доступа на запись к файлу.
создание временного файла
public static Path createTempFile(String prefix, String suffix, FileAttribute<?>... attrs) throws IOException
Path связан со стандартным FileSystem.
Этот метод работает точно так же, как метод createTempFile(Path,String,String,FileAttribute[]) в случае, когда параметр dir является временным каталогом.
- Параметры:
-
prefix— строка префикса, используемая при генерации имени файла; может бытьnull -
suffix— строка суффикса, используемая при генерации имени файла; может бытьnull, в этом случае используется ".tmp" -
attrs— необязательный список атрибутов файла для атомарного задания при создании файла - Возвращает:
- путь к только что созданному файлу, который не существовал до вызова этого метода
- Исключения:
-
IllegalArgumentException— если префикс или суффикс не могут быть использованы для генерации имени кандидата файла -
UnsupportedOperationException— если массив содержит атрибут, который не может быть атомарно задан при создании каталога -
IOException— если произошла ошибка ввода-вывода или временной каталог не существует -
SecurityException— в случае с поставщиком по умолчанию и установленным менеджером безопасности вызывается методcheckWriteдля проверки доступа на запись к файлу.
createTempDirectory
public static Path createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs) throws IOException
Path ассоциируется с той же FileSystem что и заданная директория. Подробности о том, как строится имя директории, зависят от реализации и поэтому не определены. По возможности, prefix используется для построения кандидатов имён.
Как и в случае с методами createTempFile, этот метод является лишь частью механизма временных файлов. Можно использовать shutdown-hook или механизм File.deleteOnExit() для автоматического удаления директории.
Параметр attrs является необязательным списком file-attributes, для атомарной установки атрибутов при создании директории. Каждый атрибут определяется по его name. Если в массиве содержится более одного атрибута с одинаковым именем, то все кроме последнего игнорируются.
- Parameters:
-
dir- путь к директории, в которой нужно создать новую -
prefix- строка-префикс, используемая для генерации имени директории; может бытьnull -
attrs- необязательный список атрибутов файла, которые должны быть установлены атомарно при создании директории - Returns:
- путь к только что созданной директории, которая не существовала до вызова этого метода
- Throws:
-
IllegalArgumentException- если префикс не может быть использован для генерации имени кандидатов директории -
UnsupportedOperationException- если массив содержит атрибут, который не может быть атомарно установлен при создании директории -
IOException- если произошла ошибка ввода-вывода илиdirне существует -
SecurityException- В случае использования провайдера по умолчанию и если установлен менеджер безопасности, вызывается методcheckWriteдля проверки доступа на запись при создании директории.
createTempDirectory
public static Path createTempDirectory(String prefix, FileAttribute<?>... attrs) throws IOException
Path ассоциируется с FileSystem по умолчанию. Этот метод работает точно так же, как и метод createTempDirectory(Path,String,FileAttribute[]) в случае, когда параметр dir является директорией временных файлов.
- Parameters:
-
prefix- строка-префикс, используемая для генерации имени директории; может бытьnull -
attrs- необязательный список атрибутов файла, которые должны быть установлены атомарно при создании директории - Returns:
- путь к только что созданной директории, которая не существовала до вызова этого метода
- Throws:
-
IllegalArgumentException- если префикс не может быть использован для генерации имени кандидатов директории -
UnsupportedOperationException- если массив содержит атрибут, который не может быть атомарно установлен при создании директории -
IOException- если произошла ошибка ввода-вывода или директория временных файлов не существует -
SecurityException- В случае использования провайдера по умолчанию и если установлен менеджер безопасности, вызывается методcheckWriteдля проверки доступа на запись при создании директории.
createSymbolicLink
public static Path createSymbolicLink(Path link, Path target, FileAttribute<?>... attrs) throws IOException
Параметр target является целью ссылки. Это может быть абсолютный absolute или относительный путь, и цель может отсутствовать. Если цель является относительным путём, то операции со файловой системой, выполняемые по результатам ссылки, относятся к пути ссылки.
Параметр attrs является необязательным списком attributes, для атомарной установки атрибутов при создании ссылки. Каждый атрибут определяется по его name. Если в массиве содержится более одного атрибута с одинаковым именем, то все кроме последнего игнорируются.
Если символические ссылки поддерживаются, но базовое хранилище FileStore их не поддерживает, то операция может завершиться с ошибкой IOException. Кроме того, на некоторых операционных системах, для создания символических ссылок может потребоваться запуск виртуальной машины Java с реализуемыми привилегиями, в этом случае метод может выбросить исключение IOException.
- Parameters:
-
link- путь к создаваемой символической ссылке -
target- цель символической ссылки -
attrs- массив атрибутов, которые должны быть установлены атомарно при создании символической ссылки - Returns:
- путь к созданной символической ссылке
- Throws:
-
UnsupportedOperationException- если реализация не поддерживает символические ссылки или массив содержит атрибут, который не может быть атомарно установлен при создании символической ссылки -
FileAlreadyExistsException- если файл с таким же именем уже существует (необязательное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае использования провайдера по умолчанию и если установлен менеджер безопасности, он отказывает вLinkPermission("symbolic")или его методcheckWriteотказывает в доступе на запись к пути символической ссылки.
createLink
public static Path createLink(Path link, Path existing) throws IOException
Параметр link определяет запись в каталоге, которую нужно создать. Параметр existing - путь к существующему файлу. Этот метод создаёт новую запись в каталоге для файла, чтобы к нему можно было обратиться, используя link в качестве пути. В некоторых файловых системах это известно как создание "жёсткой ссылки". Сохраняются ли атрибуты файла для файла или для каждой записи в каталоге, зависит от файловой системы и поэтому не определено. Обычно, файловая система требует, чтобы все ссылки (записи в каталоге) для файла находились в одной файловой системе. Кроме того, на некоторых платформах, для создания жёстких ссылок или ссылок на директории, виртуальная машина Java может потребовать запуска с реализуемыми привилегиями.
- Parameters:
-
link- ссылка (запись в каталоге) для создания -
existing- путь к существующему файлу - Returns:
- путь к ссылке (записи в каталоге)
- Throws:
-
UnsupportedOperationException- если реализация не поддерживает добавление существующего файла в директорию -
FileAlreadyExistsException- если запись не может быть создана по другой причине, потому что файл с таким именем уже существует (необязательное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае использования провайдера по умолчанию и если установлен менеджер безопасности, он отказывает вLinkPermission("hard")или его методcheckWriteотказывает в доступе на запись к ссылке или существующему файлу.
delete
public static void delete(Path path) throws IOException
Реализация может потребовать проверить, является ли файл директорией. Следовательно, этот метод может не быть атомарным по отношению к другим операциям файловой системы. Если файл является символической ссылкой, то удаляется сама символическая ссылка, а не конечный объект ссылки.
Если файл является директорией, то директория должна быть пустой. В некоторых реализациях у директории есть записи для специальных файлов или ссылок, которые создаются при создании директории. В таких реализациях директория считается пустой, когда существуют только специальные записи. Этот метод можно использовать с методом walkFileTree для удаления директории и всех записей в директории или целого дерева файлов, если это необходимо.
На некоторых операционных системах может быть невозможно удалить файл, если он открыт и используется этой виртуальной машиной Java или другими программами.
- Parameters:
-
path- путь к файлу для удаления - Throws:
-
NoSuchFileException- если файла не существует (необязательное специфическое исключение) -
DirectoryNotEmptyException- если файл является директорией и не удален, так как директория не пуста (необязательное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае использования провайдера по умолчанию и если установлен менеджер безопасности, вызывается методSecurityManager.checkDelete(String)для проверки доступа на удаление файла
удалитьЕслиСуществует
public static boolean deleteIfExists(Path path) throws IOException
Как и в методе delete(Path), реализация может потребовать проверки файла, чтобы определить, является ли он каталогом. Вследствие этого данный метод может не быть атомарным относительно других операций с файловой системой. Если файл является символической ссылкой, то удаляется сама символическая ссылка, а не конечная цель ссылки.
Если файл является каталогом, то каталог должен быть пустым. В некоторых реализациях каталог имеет записи для специальных файлов или ссылок, которые создаются при создании каталога. В таких реализациях каталог считается пустым, когда существуют только специальные записи.
В некоторых операционных системах может быть невозможно удалить файл, когда он открыт и используется этой виртуальной машиной Java или другими программами.
- Параметры:
-
path- путь к файлу, который нужно удалить - Возвращает:
-
trueесли файл был удален этим методом;falseесли файл не мог быть удален, так как его не существовало - Выбрасывает:
-
DirectoryNotEmptyException- если файл является каталогом и не может быть удален по другим причинам, потому что каталог не пуст (необязательное специфичное исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается методSecurityManager.checkDelete(String)для проверки доступа к удалению файла.
копировать
public static Path copy(Path source, Path target, CopyOption... options) throws IOException
Этот метод копирует файл в целевой файл, при этом параметр
options определяет, как выполняется копирование. По умолчанию, копирование завершается неудачей, если целевой файл уже существует или является символической ссылкой, за исключением случаев, когда исходный и целевой файлы являются same файлом, в этом случае метод завершается без копирования файла. Атрибуты файла не обязательны для копирования в целевой файл. Если поддерживаются символические ссылки, и файл является символической ссылкой, то копируется конечная цель ссылки. Если файл является каталогом, то создается пустой каталог в целевом расположении (записи в каталоге не копируются). Этот метод может быть использован с методом walkFileTree для копирования каталога и всех записей в каталоге или всей деревовидной структуры файлов, где это необходимо.
Параметр options может включать следующие элементы:
| Параметр | Описание |
|---|---|
REPLACE_EXISTING | Если целевой файл существует, то целевой файл заменяется, если он не является непустым каталогом. Если целевой файл существует и является символической ссылкой, то заменяется сама символическая ссылка, а не цель ссылки. |
COPY_ATTRIBUTES | Попытка скопировать атрибуты файла, связанные с этим файлом, в целевой файл. Точные атрибуты файла, которые копируются, зависят от платформы и файловой системы, и поэтому не определены. Минимально, last-modified-time копируется в целевой файл, если он поддерживается как исходным, так и целевым хранилищами файлов. Копирование временных меток файлов может привести к потере точности. |
NOFOLLOW_LINKS | Символические ссылки не отслеживаются. Если файл является символической ссылкой, то копируется сама символическая ссылка, а не ее цель. Реализация определяет, могут ли атрибуты файла быть скопированы в новую ссылку. Другими словами, параметр COPY_ATTRIBUTES может быть проигнорирован при копировании символической ссылки. |
Реализация данного интерфейса может поддерживать дополнительные параметры, специфичные для реализации.
Копирование файла не является атомарной операцией. Если выброшено исключение IOException, то возможно, что целевой файл неполный или некоторые его атрибуты не были скопированы из исходного файла. Когда указан параметр REPLACE_EXISTING, и целевой файл существует, то целевой файл заменяется. Проверка существования файла и создание нового файла может не быть атомарной относительно других операций с файловой системой.
Пример использования: Предположим, мы хотим скопировать файл в каталог, присвоив ему то же имя файла, что и у исходного файла:
Path source = ...
Path newdir = ...
Files.copy(source, newdir.resolve(source.getFileName());
- Параметры:
-
source- путь к файлу для копирования -
target- путь к целевому файлу (может быть связан с другим поставщиком, чем исходный путь) -
options- параметры, определяющие, как должно выполняться копирование - Возвращает:
- путь к целевому файлу
- Выбрасывает:
-
UnsupportedOperationException- если массив содержит параметр копирования, который не поддерживается -
FileAlreadyExistsException- если целевой файл существует, но не может быть заменен, потому что параметрREPLACE_EXISTINGне указан (необязательное специфичное исключение) -
DirectoryNotEmptyException- параметрREPLACE_EXISTINGуказан, но файл не может быть заменен, потому что это непустой каталог (необязательное специфичное исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается методcheckReadдля проверки доступа к чтению исходного файла,checkWriteвызывается для проверки доступа к записи в целевой файл. Если копируется символическая ссылка, менеджер безопасности вызывается для проверкиLinkPermission("symbolic").
move
public static Path move(Path source, Path target, CopyOption... options) throws IOException
По умолчанию, этот метод пытается переместить файл в целевой файл, терпя неудачу, если целевой файл существует, за исключением случаев, когда исходный и целевой файлы являются same файлом, в этом случае метод не имеет эффекта. Если файл является символической ссылкой, то перемещается сама символическая ссылка, а не целевой объект ссылки. Этот метод может быть вызван для перемещения пустой директории. В некоторых реализациях у директории есть записи для специальных файлов или ссылок, которые создаются при создании директории. В таких реализациях директория считается пустой, если существуют только специальные записи. Когда вызывается для перемещения непустой директории, то директория перемещается, если не требуется перемещение записей в директории. Например, переименование директории в том же FileStore обычно не требует перемещения записей в директории. При перемещении директории, которое требует перемещения ее записей, этот метод терпит неудачу (бросая исключение
IOException). Чтобы переместить дерево файлов, можно скопировать, а не перемещать директории, это можно сделать с помощью метода copy в сочетании с утилитарным методом Files.walkFileTree.
Параметр options может включать любые из следующих:
| Вариант | Описание |
|---|---|
REPLACE_EXISTING | Если целевой файл существует, то целевой файл заменяется, если он не является непустой директорией. Если целевой файл существует и является символической ссылкой, то сама символическая ссылка, а не целевой объект ссылки, заменяется. |
ATOMIC_MOVE | Перемещение выполняется как атомарная операция файловой системы, и все остальные параметры игнорируются. Если целевой файл существует, то в зависимости от реализации, либо существующий файл заменяется, либо метод терпит неудачу, бросая исключение IOException. Если перемещение не может быть выполнено как атомарная операция файловой системы, то выбрасывается AtomicMoveNotSupportedException. Это может произойти, например, когда целевой путь находится на другой файловой FileStore и потребовалось бы скопировать файл, или целевой путь связан с другим поставщиком, отличным от этого объекта. |
Реализация этого интерфейса может поддерживать дополнительные параметры, специфичные для реализации.
Перемещение файла скопирует last-modified-time в целевой файл, если это поддерживается как исходным, так и целевым хранилищами файлов. Копирование временных меток файла может привести к потере точности. Реализация также может попытаться скопировать другие атрибуты файла, но не обязана терпя неудачу, если атрибуты файла нельзя скопировать. Когда перемещение выполняется как неатомарная операция, и выбрасывается IOException , тогда состояние файлов не определено. Оригинальный файл и целевой файл могут оба существовать, целевой файл может быть неполным или некоторые его атрибуты файла могут не быть скопированы из исходного файла.
Примеры использования: Предположим, мы хотим переименовать файл в "newname", сохраняя файл в той же директории:
Path source = ...
Files.move(source, source.resolveSibling("newname"));
В качестве альтернативы, предположим, что мы хотим переместить файл в новую директорию, сохраняя то же имя файла и заменяя любой существующий файл с таким же именем в директории:
Path source = ...
Path newdir = ...
Files.move(source, newdir.resolve(source.getFileName()), REPLACE_EXISTING);
- Параметры:
-
source- путь к перемещаемому файлу -
target- путь к целевому файлу (может быть связан с другим поставщиком, отличным от пути к исходному файлу) -
options- параметры, определяющие, как должно быть выполнено перемещение - Возвращает:
- путь к целевому файлу
- Исключения:
-
UnsupportedOperationException- если массив содержит параметр копирования, который не поддерживается -
FileAlreadyExistsException- если целевой файл существует, но не может быть заменен, потому что параметрREPLACE_EXISTINGне указан (возможное специфическое исключение) -
DirectoryNotEmptyException- параметрREPLACE_EXISTINGуказан, но файл не может быть заменен, потому что он является непустой директорией, или исходный объект является непустой директорией, содержащей записи, которые должны быть перемещены (возможные специфические исключения) -
AtomicMoveNotSupportedException- если в массиве параметров указан параметрATOMIC_MOVE, но файл не может быть перемещен как атомарная операция файловой системы. -
IOException- если произошла ошибка ввода-вывода -
checkWrite- В случае с поставщиком по умолчанию, если установлен менеджер безопасности, вызывается методcheckWriteдля проверки права записи как для исходного, так и для целевого файла.
readSymbolicLink
public static Path readSymbolicLink(Path link) throws IOException
Если файловая система поддерживает символические ссылки, то этот метод используется для считывания целевого объекта ссылки, терпя неудачу, если файл не является символической ссылкой. Целевой объект ссылки не обязательно должен существовать. Возвращаемый Path объект будет связан с той же файловой системой, что и link.
- Параметры:
-
link- путь к символической ссылке - Возвращает:
- объект
Path, представляющий целевой объект ссылки - Исключения:
-
UnsupportedOperationException- если реализация не поддерживает символические ссылки -
NotLinkException- если целевой объект не может быть прочитан по другим причинам, потому что файл не является символической ссылкой (возможное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию, если установлен менеджер безопасности, проверяется, чтоFilePermissionполучил разрешение "readlink" для чтения ссылки.
getFileStore
public static FileStore getFileStore(Path path) throws IOException
FileStore , представляющий хранилище файлов, где находится файл. После получения ссылки на FileStore , в зависимости от реализации, операции над возвращенным FileStore, или объектами FileStoreAttributeView , полученными из него, могут зависеть от существования файла. В частности, поведение не определено для случая, когда файл удален или перемещен в другое хранилище файлов.
- Параметры:
-
path- путь к файлу - Возвращает:
- хранилище файлов, где хранится файл
- Исключения:
-
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию, если установлен менеджер безопасности, вызывается методcheckReadдля проверки права чтения к файлу, а также проверяетсяRuntimePermission("getFileStoreAttributes")
isSameFile
public static boolean isSameFile(Path path, Path path2) throws IOException
Если оба Path объекта equal, то этот метод возвращает true , не проверяя, существует ли файл. Если два Path объекта связаны с разными поставщиками, то этот метод возвращает false. В противном случае этот метод проверяет, указывают ли оба Path объекта на один и тот же файл, и, в зависимости от реализации, может потребоваться открыть или получить доступ к обоим файлам.
Если файловая система и файлы остаются статичными, то этот метод реализует отношение эквивалентности для не-null Paths.
- Он является рефлексивным: для
Pathf,isSameFile(f,f)должен возвращатьtrue. - Он является симметричным: для двух
Pathsfиg,isSameFile(f,g)будет равноisSameFile(g,f). - Он является транзитивным: для трех
Pathsf,g, иh, еслиisSameFile(f,g)возвращаетtrueиisSameFile(g,h)возвращаетtrue, тоisSameFile(f,h)вернетtrue.
- Параметры:
-
path- один путь к файлу -
path2- другой путь - Возвращает:
-
trueтогда и только тогда, когда оба пути указывают на один и тот же файл - Исключения:
-
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию, если установлен менеджер безопасности, вызывается методcheckReadдля проверки права чтения к обоим файлам. - См. также:
mismatch
public static long mismatch(Path path, Path path2) throws IOException
-1L если несовпадений нет. Позиция будет в диапазоне от 0L до размера (в байтах) меньшего файла.
Два файла считаются совпадающими, если они удовлетворяют одному из следующих условий:
- Два пути указывают на один и тот же файл, даже если два равные пути указывают на файл, который не существует, или
- Два файла имеют одинаковый размер, и каждый байт в первом файле идентичен соответствующему байту во втором файле.
В противном случае между двумя файлами есть несовпадение, и возвращаемое значение этого метода:
- Позиция первого несовпадающего байта, или
- Размер меньшего файла (в байтах), когда файлы имеют разные размеры, и каждый байт меньшего файла идентичен соответствующему байту большего файла.
Этот метод может не быть атомарным по отношению к другим операциям с файловой системой. Этот метод всегда рефлексивен (для Path f, mismatch(f,f) возвращает -1L). Если файловая система и файлы остаются статичными, то этот метод симметричен (для двух Paths f и g, mismatch(f,g) вернёт то же самое значение, что и mismatch(g,f)).
- Parameters:
-
path- путь к первому файлу -
path2- путь ко второму файлу - Returns:
- позиция первого несовпадения или
-1Lесли несовпадений нет - Throws:
-
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается методcheckReadдля проверки доступа к чтению обоих файлов. - Since:
- 12
isHidden
public static boolean isHidden(Path path) throws IOException
- API Note:
- Точное определение скрытого файла зависит от платформы или поставщика. Например, в UNIX-системах файл считается скрытым, если его имя начинается с символа точки ('.'). В Windows файл считается скрытым, если атрибут DOS
hiddenустановлен.В зависимости от реализации, для определения, является ли файл скрытым, может потребоваться доступ к файловой системе.
- Parameters:
-
path- путь к файлу, который нужно проверить - Returns:
-
trueесли файл считается скрытым - Throws:
-
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается методcheckReadдля проверки доступа к чтению файла.
probeContentType
public static String probeContentType(Path path) throws IOException
Этот метод использует установленные реализации FileTypeDetector для определения типа содержимого данного файла. Каждый детектор типа файла вызывается, по очереди, для определения типа файла. Если тип файла распознан, то возвращается тип содержимого. Если тип файла не распознан ни одним из установленных детекторов типа файла, то вызывается системный детектор типа файла для определения типа содержимого.
В данном вызове виртуальной машины Java поддерживается глобальный список детекторов типа файла. Установленные детекторы типа файла загружаются с помощью механизма загрузки поставщика, определенного классом ServiceLoader. Установленные детекторы типа файла загружаются с помощью системного загрузчика классов. Если системный загрузчик классов не найден, используется платформенный загрузчик классов. Детекторы типа файла обычно устанавливаются, помещая их в JAR-файл в пути к классу приложения, JAR-файл содержит файл конфигурации поставщика, названный java.nio.file.spi.FileTypeDetector в каталоге ресурсов META-INF/services, и файл перечисляет один или несколько полных квалифицированных имен конкретного подкласса FileTypeDetector , имеющего конструктор без аргументов. Если процесс поиска или создания экземпляров установленных детекторов типа файлов завершается неудачей, выбрасывается неопределенная ошибка. Порядок поиска установленных поставщиков определяется реализацией.
Возвращаемое значение этого метода — строковая форма значения типа содержимого Multipurpose Internet Mail Extension (MIME), определенного в RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. Строка гарантированно может быть проанализирована по грамматике в RFC.
- Parameters:
-
path- путь к файлу для проверки - Returns:
- Тип содержимого файла или
nullесли тип содержимого определить невозможно - Throws:
-
IOException- если произошла ошибка ввода-вывода -
SecurityException- Если установлен менеджер безопасности, и он отклоняет неопределенное разрешение, необходимое реализации детектора типа файла.
getFileAttributeView
public static <V extends FileAttributeView> V getFileAttributeView(Path path, Class<V> type, LinkOption... options)
Представление атрибутов файла предоставляет доступ для чтения или изменения набора атрибутов файла. Этот метод предназначен для использования в тех случаях, когда представление атрибутов файла определяет методы безопасного типа для чтения или изменения атрибутов файла. Параметр type — тип требуемого представления атрибутов файла, и метод возвращает экземпляр этого типа, если он поддерживается. Тип BasicFileAttributeView поддерживает доступ к основным атрибутам файла. Вызов этого метода для выбора представления атрибутов файла этого типа всегда вернет экземпляр этого класса.
Массив options может использоваться для указания того, как обрабатывать символьные ссылки результирующим представлением атрибутов файла в случае, если файл является символьной ссылкой. По умолчанию символьные ссылки отслеживаются. Если опция NOFOLLOW_LINKS присутствует, символьные ссылки не отслеживаются. Эта опция игнорируется реализациями, которые не поддерживают символьные ссылки.
Пример использования: Предположим, что мы хотим прочитать или установить ACL файла, если это поддерживается:
Path path = ...
AclFileAttributeView view = Files.getFileAttributeView(path, AclFileAttributeView.class);
if (view != null) {
List<AclEntry> acl = view.getAcl();
:
}
- Type Parameters:
-
V- Тип представления атрибутов - Parameters:
-
path- путь к файлу -
type- объект, соответствующий представлению атрибутов файла -
options- опции, указывающие, как обрабатываются символьные ссылки - Returns:
- представление атрибутов файла указанного типа или
nullесли представление атрибутов типа недоступно
readAttributes
public static <A extends BasicFileAttributes> A readAttributes(Path path, Class<A> type, LinkOption... options) throws IOException
Параметр type — тип необходимых атрибутов, и этот метод возвращает экземпляр этого типа, если он поддерживается. Все реализации поддерживают базовый набор атрибутов файлов, поэтому вызов этого метода с параметром type типа
BasicFileAttributes.class не вызовет
UnsupportedOperationException.
Массив options может использоваться для указания обработки символических ссылок в случае, если файл является символической ссылкой. По умолчанию символические ссылки отслеживаются, и считываются атрибуты файла конечной цели ссылки. Если опция NOFOLLOW_LINKS присутствует, то символические ссылки не отслеживаются.
Зависит от реализации, считываются ли все атрибуты файла как атомарная операция по отношению к другим операциям с файловой системой.
Пример использования: Предположим, что мы хотим считать атрибуты файла в объеме:
Path path = ...
BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class);
В противном случае, предположим, что мы хотим считать атрибуты POSIX файла, не отслеживая символические ссылки:
PosixFileAttributes attrs =
Files.readAttributes(path, PosixFileAttributes.class, NOFOLLOW_LINKS);
- Type Parameters:
-
A- тип атрибутов - Parameters:
-
path- путь к файлу -
type- класс атрибутов файла, которые необходимо прочитать -
options- опции, указывающие, как обрабатываются символьные ссылки - Returns:
- атрибуты файла
- Throws:
-
UnsupportedOperationException- если атрибуты заданного типа не поддерживаются -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию, и установленным менеджером безопасности, его методcheckReadвызывается для проверки доступа к чтению файла. Если этот метод вызывается для чтения атрибутов, чувствительных к безопасности, менеджер безопасности может вызвать дополнительные разрешения.
setAttribute
public static Path setAttribute(Path path, String attribute, Object value, LinkOption... options) throws IOException
Параметр attribute определяет атрибут, который нужно установить, и имеет вид:
[имя-представления:]имя-атрибутагде квадратные скобки [...] обозначают необязательный компонент, а символ
':' обозначает сам себя. имя-представления — это name представления FileAttributeView, которое идентифицирует набор атрибутов файла. Если не указано, по умолчанию используется "basic", имя представления атрибутов файла, которое определяет базовый набор атрибутов файлов, общих для многих файловых систем. имя-атрибута — это имя атрибута в наборе.
Массив options может использоваться для указания того, как обрабатываются символические ссылки в случае, если файл является символической ссылкой. По умолчанию символические ссылки следуют, и атрибут файла конечного объекта ссылки устанавливается. Если опция NOFOLLOW_LINKS присутствует, то символические ссылки не следуют.
Пример использования: Предположим, что нам нужно установить атрибут DOS "скрытый":
Path path = ...
Files.setAttribute(path, "dos:hidden", true);
- Параметры:
-
path- путь к файлу -
attribute- атрибут для установки -
value- значение атрибута -
options- опции, указывающие, как обрабатывать символические ссылки - Возвращает:
- данный путь
- Выбрасывает:
-
UnsupportedOperationException- если представление атрибута недоступно -
IllegalArgumentException- если имя атрибута не указано или не распознано, или значение атрибута имеет правильный тип, но имеет неподходящее значение -
ClassCastException- если значение атрибута не является ожидаемого типа или является коллекцией, содержащей элементы, которые не являются ожидаемого типа -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию, и если установлен менеджер безопасности, его методcheckWriteзапрещает запись в файл. Если этот метод вызывается для установки атрибутов, чувствительных к безопасности, менеджер безопасности может быть вызван для проверки дополнительных разрешений.
getAttribute
public static Object getAttribute(Path path, String attribute, LinkOption... options) throws IOException
Параметр attribute определяет атрибут, который нужно прочитать, и имеет вид:
[имя-представления:]имя-атрибутагде квадратные скобки [...] обозначают необязательный компонент, а символ
':' обозначает сам себя. имя-представления — это name представления FileAttributeView, которое идентифицирует набор атрибутов файла. Если не указано, по умолчанию используется "basic", имя представления атрибутов файла, которое определяет базовый набор атрибутов файлов, общих для многих файловых систем. имя-атрибута — это имя атрибута.
Массив options может использоваться для указания того, как обрабатываются символические ссылки в случае, если файл является символической ссылкой. По умолчанию символические ссылки следуют, и атрибут файла конечного объекта ссылки считывается. Если опция NOFOLLOW_LINKS присутствует, то символические ссылки не следуют.
Пример использования: Предположим, что нам требуется идентификатор пользователя владельца файла на системе, которая поддерживает представление "unix":
Path path = ...
int uid = (Integer)Files.getAttribute(path, "unix:uid");
- Параметры:
-
path- путь к файлу -
attribute- атрибут для чтения -
options- опции, указывающие, как обрабатывать символические ссылки - Возвращает:
- значение атрибута
- Выбрасывает:
-
UnsupportedOperationException- если представление атрибута недоступно -
IllegalArgumentException- если имя атрибута не указано или не распознано -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию, и если установлен менеджер безопасности, его методcheckReadзапрещает чтение файла. Если этот метод вызывается для чтения атрибутов, чувствительных к безопасности, менеджер безопасности может быть вызван для проверки дополнительных разрешений.
readAttributes
public static Map<String,Object> readAttributes(Path path, String attributes, LinkOption... options) throws IOException
Параметр attributes определяет атрибуты, которые нужно прочитать, и имеет вид:
[имя-представления:]список-атрибутовгде квадратные скобки [...] обозначают необязательный компонент, а символ
':' обозначает сам себя. имя-представления — это name представления FileAttributeView, которое идентифицирует набор атрибутов файла. Если не указано, по умолчанию используется "basic", имя представления атрибутов файла, которое определяет базовый набор атрибутов файлов, общих для многих файловых систем.
Компонент список-атрибутов представляет собой список, разделенный запятыми, одного или нескольких имен атрибутов для чтения. Если список содержит значение "*", то все атрибуты читаются. Атрибуты, которые не поддерживаются, игнорируются и не будут присутствовать в возвращаемой карте. Реализация может определять, читаются ли все атрибуты как атомарная операция относительно других операций с файловой системой.
Следующие примеры демонстрируют возможные значения для параметра
attributes:
| Пример | Описание |
|---|---|
"*" | Читает все basic-file-attributes. |
"size,lastModifiedTime,lastAccessTime" | Читает атрибуты размера файла, последней даты изменения и последнего доступа. |
"posix:*" | Читает все POSIX-file-attributes. |
"posix:permissions,owner,size" | Читает права доступа, владельца и размер файла в POSIX формате. |
Массив options может использоваться для указания того, как обрабатываются символические ссылки в случае, если файл является символической ссылкой. По умолчанию символические ссылки следуют, и атрибут файла конечного объекта ссылки считывается. Если опция NOFOLLOW_LINKS присутствует, то символические ссылки не следуют.
- Параметры:
-
path- путь к файлу -
attributes- атрибуты для чтения -
options- опции, указывающие, как обрабатывать символические ссылки - Возвращает:
- карта атрибутов; ключи карты — имена атрибутов, значения — значения атрибутов
- Выбрасывает:
-
UnsupportedOperationException- если представление атрибута недоступно -
IllegalArgumentException- если атрибуты не указаны или указан неизвестный атрибут -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию, и если установлен менеджер безопасности, его методcheckReadзапрещает чтение файла. Если этот метод вызывается для чтения атрибутов, чувствительных к безопасности, менеджер безопасности может быть вызван для проверки дополнительных разрешений.
getPosixFilePermissions
public static Set<PosixFilePermission> getPosixFilePermissions(Path path, LinkOption... options) throws IOException
Параметр 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
Параметр path связан с FileSystem, который поддерживает PosixFileAttributeView. Этот вид атрибутов предоставляет доступ к атрибутам файлов, обычно связанным с файлами в файловых системах, используемых операционными системами, реализующими семейство стандартов Portable Operating System Interface (POSIX).
- Параметры:
-
path- Путь к файлу -
perms- Новый набор разрешений - Возвращает:
- Указанный путь
- Выбрасывает:
-
UnsupportedOperationException- если связанная файловая система не поддерживаетPosixFileAttributeView -
ClassCastException- если набор содержит элементы, которые не являются типаPosixFilePermission -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности он отклоняетRuntimePermission("accessUserInformation")или его методcheckWriteотклоняет запись в файл.
Получить владельца
public static UserPrincipal getOwner(Path path, LinkOption... options) throws IOException
Параметр path связан с файловой системой, которая поддерживает FileOwnerAttributeView. Этот вид атрибутов файла предоставляет доступ к атрибуту файла, являющемуся владельцем файла.
- Параметры:
-
path- Путь к файлу -
options- параметры, определяющие, как обрабатываются символические ссылки - Возвращает:
- Главный объект пользователя, представляющий владельца файла
- Выбрасывает:
-
UnsupportedOperationException- если связанная файловая система не поддерживаетFileOwnerAttributeView -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности он отклоняетRuntimePermission("accessUserInformation")или его методcheckReadотклоняет чтение файла.
Установить владельца
public static Path setOwner(Path path, UserPrincipal owner) throws IOException
Параметр path связан с файловой системой, которая поддерживает FileOwnerAttributeView. Этот вид атрибутов файла предоставляет доступ к атрибуту файла, являющемуся владельцем файла.
Пример использования: Предположим, мы хотим сделать "joe" владельцем файла:
Path path = ...
UserPrincipalLookupService lookupService =
provider(path).getUserPrincipalLookupService();
UserPrincipal joe = lookupService.lookupPrincipalByName("joe");
Files.setOwner(path, joe);
- Параметры:
-
path- Путь к файлу -
owner- Новый владелец файла - Возвращает:
- Указанный путь
- Выбрасывает:
-
UnsupportedOperationException- если связанная файловая система не поддерживаетFileOwnerAttributeView -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности он отклоняетRuntimePermission("accessUserInformation")или его методcheckWriteотклоняет запись в файл. - См. также:
Является ли символической ссылкой
public static boolean isSymbolicLink(Path path)
В случае необходимости различать ошибку ввода-вывода от ситуации, когда файл не является символической ссылкой, атрибуты файла можно прочитать с помощью метода readAttributes, а тип файла проверить с помощью метода BasicFileAttributes.isSymbolicLink().
- Параметры:
-
path- Путь к файлу - Возвращает:
-
trueесли файл является символической ссылкой;falseесли файл не существует, не является символической ссылкой или невозможно определить, является ли файл символической ссылкой. - Выбрасывает:
-
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности его методcheckReadотклоняет чтение файла.
Является ли каталогом
public static boolean isDirectory(Path path, LinkOption... options)
Массив options может использоваться для указания, как обрабатывать символические ссылки в случае, если файл является символической ссылкой. По умолчанию символические ссылки следуют и атрибут файла конечной цели ссылки читается. Если присутствует параметр NOFOLLOW_LINKS, символические ссылки не следуют.
В случае необходимости различать ошибку ввода-вывода от ситуации, когда файл не является каталогом, атрибуты файла можно прочитать с помощью метода readAttributes, а тип файла проверить с помощью метода BasicFileAttributes.isDirectory().
- Параметры:
-
path- путь к файлу для проверки -
options- параметры, указывающие, как обрабатывать символические ссылки - Возвращает:
-
trueесли файл является каталогом;falseесли файл не существует, не является каталогом или невозможно определить, является ли файл каталогом. - Выбрасывает:
-
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности его методcheckReadотклоняет чтение файла.
Является ли обычным файлом
public static boolean isRegularFile(Path path, LinkOption... options)
Массив options может использоваться для указания, как обрабатывать символические ссылки в случае, если файл является символической ссылкой. По умолчанию символические ссылки следуют и атрибут файла конечной цели ссылки читается. Если присутствует параметр NOFOLLOW_LINKS, символические ссылки не следуют.
В случае необходимости различать ошибку ввода-вывода от ситуации, когда файл не является обычным файлом, атрибуты файла можно прочитать с помощью метода readAttributes, а тип файла проверить с помощью метода BasicFileAttributes.isRegularFile().
- Параметры:
-
path- путь к файлу -
options- параметры, указывающие, как обрабатывать символические ссылки - Возвращает:
-
trueесли файл является обычным файлом;falseесли файл не существует, не является обычным файлом или невозможно определить, является ли файл обычным файлом. - Выбрасывает:
-
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности его методcheckReadотклоняет чтение файла.
Получить время последней модификации
public static FileTime getLastModifiedTime(Path path, LinkOption... options) throws IOException
Массив options может использоваться для указания, как обрабатывать символические ссылки в случае, если файл является символической ссылкой. По умолчанию символические ссылки следуют и атрибут файла конечной цели ссылки читается. Если присутствует параметр NOFOLLOW_LINKS, символические ссылки не следуют.
- Параметры:
-
path- путь к файлу -
options- параметры, указывающие, как обрабатывать символические ссылки - Возвращает:
- объект
FileTime, представляющий время последней модификации файла, или реализуемую по умолчанию, когда метка времени, указывающая время последней модификации, не поддерживается файловой системой - Выбрасывает:
-
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности его методcheckReadотклоняет чтение файла. - См. также:
Установить время последней модификации
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отклоняет запись в файл. - См. также:
размер
public static long size(Path path) throws IOException
regular файлами, зависит от реализации и поэтому не определён.- Параметры:
-
path- путь к файлу - Возвращает:
- размер файла в байтах
- Исключения:
-
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию, если установлен менеджер безопасности, его методcheckReadзапрещает чтение файла. - См. также:
существует
public static boolean exists(Path path, LinkOption... options)
Параметр options может использоваться для указания, как обрабатывать символические ссылки в случае, если файл является символической ссылкой. По умолчанию символические ссылки следуют. Если опция NOFOLLOW_LINKS присутствует, символические ссылки не отслеживаются.
Обратите внимание, что результат этого метода немедленно устаревает. Если этот метод указывает, что файл существует, нет гарантии, что последующий доступ будет успешным. Следует проявлять осторожность при использовании этого метода в приложениях, чувствительных к безопасности.
- Параметры:
-
path- путь к файлу для проверки -
options- опции, указывающие, как обрабатывать символические ссылки. - Возвращает:
-
true, если файл существует;false, если файл не существует или его существование невозможно определить. - Исключения:
-
SecurityException- В случае с поставщиком по умолчанию вызываетсяSecurityManager.checkRead(String)для проверки доступа к файлу для чтения. - См. также:
неСуществует
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)
Обратите внимание, что результат этого метода немедленно устаревает, нет гарантии, что последующая попытка открыть файл для чтения будет успешной (или даже что она обратится к тому же файлу). Следует проявлять осторожность при использовании этого метода в приложениях, чувствительных к безопасности.
- Параметры:
-
path- путь к файлу для проверки - Возвращает:
-
true, если файл существует и доступен для чтения;false, если файл не существует, доступ для чтения запрещён из-за недостаточных привилегий виртуальной машины Java или доступ не может быть определён - Исключения:
-
SecurityException- В случае с поставщиком по умолчанию, если установлен менеджер безопасности, вызываетсяcheckReadдля проверки доступа к файлу для чтения.
isWritable
public static boolean isWritable(Path path)
Обратите внимание, что результат этого метода немедленно устаревает, нет гарантии, что последующая попытка открыть файл для записи будет успешной (или даже что она обратится к тому же файлу). Следует проявлять осторожность при использовании этого метода в приложениях, чувствительных к безопасности.
- Параметры:
-
path- путь к файлу для проверки - Возвращает:
-
true, если файл существует и доступен для записи;false, если файл не существует, доступ для записи запрещён из-за недостаточных привилегий виртуальной машины Java или доступ не может быть определён - Исключения:
-
SecurityException- В случае с поставщиком по умолчанию, если установлен менеджер безопасности, вызываетсяcheckWriteдля проверки доступа к файлу для записи.
isExecutable
public static boolean isExecutable(Path path)
execute файла. Семантика может отличаться при проверке доступа к каталогу. Например, в системах UNIX проверка доступа на выполнение проверяет, имеет ли виртуальная машина Java разрешение на поиск в каталоге для доступа к файлу или подкаталогам. В зависимости от реализации, этот метод может потребовать чтения разрешений файла, списков управления доступом или других атрибутов файла для проверки эффективного доступа к файлу. Следовательно, этот метод может не быть атомарным по отношению к другим операциям с файловой системой.
Обратите внимание, что результат этого метода немедленно устаревает, нет гарантии, что последующая попытка выполнить файл будет успешной (или даже что она обратится к тому же файлу). Следует проявлять осторожность при использовании этого метода в приложениях, чувствительных к безопасности.
- Параметры:
-
path- путь к файлу для проверки - Возвращает:
-
true, если файл существует и доступен для выполнения;false, если файл не существует, доступ для выполнения запрещён из-за недостаточных привилегий виртуальной машины Java или доступ не может быть определён - Исключения:
-
SecurityException- В случае с поставщиком по умолчанию, если установлен менеджер безопасности, вызываетсяcheckExecдля проверки доступа к файлу для выполнения.
walkFileTree
public static Path walkFileTree(Path start, Set<FileVisitOption> options, int maxDepth, FileVisitor<? super Path> visitor) throws IOException
Этот метод обходит файловую структуру, начиная с заданного исходного файла. Обход файловой структуры выполняется в порядке обхода в глубину, и для каждого встреченного файла вызывается заданный FileVisitor. Обход файловой структуры завершается, когда все доступные файлы в структуре были посещены, или метод посещения возвращает результат TERMINATE. Если метод посещения завершается из-за IOException, непредвиденной ошибки или исключения времени выполнения, то обход прерывается, а ошибка или исключение передаются вызывающему методу.
Для каждого встреченного файла этот метод пытается прочитать его BasicFileAttributes. Если файл не является каталогом, то вызывается метод visitFile с атрибутами файла. Если атрибуты файла не могут быть прочитаны из-за ошибки ввода-вывода, то вызывается метод visitFileFailed с ошибкой ввода-вывода.
Если файл является каталогом, и каталог не может быть открыт, то вызывается метод visitFileFailed с ошибкой ввода-вывода, после чего обход файловой структуры продолжается, по умолчанию, у следующего брата каталога.
Если каталог открыт успешно, то посещаются записи в каталоге и их потомки. Когда все записи были посещены, или при итерации по каталогу возникает ошибка ввода-вывода, то каталог закрывается, и вызывается метод посетителя postVisitDirectory. Обход файловой структуры затем продолжается, по умолчанию, у следующего брата каталога.
По умолчанию, символические ссылки не отслеживаются автоматически этим методом. Если параметр options содержит опцию FOLLOW_LINKS, то символические ссылки отслеживаются. При отслеживании ссылок и атрибуты целевого объекта не могут быть прочитаны, этот метод пытается получить BasicFileAttributes ссылки. Если они могут быть прочитаны, то вызывается метод visitFile с атрибутами ссылки (в противном случае вызывается метод visitFileFailed как указано выше).
Если параметр options содержит опцию FOLLOW_LINKS, этот метод отслеживает посещенные каталоги, чтобы обнаруживать циклы. Цикл возникает, когда в каталоге есть запись, которая является предком этого каталога. Обнаружение циклов выполняется путем записи file-key каталогов, или если ключи файлов недоступны, вызывая метод isSameFile для проверки, является ли каталог тем же файлом, что и предок. При обнаружении цикла он обрабатывается как ошибка ввода-вывода, и вызывается метод visitFileFailed с экземпляром FileSystemLoopException.
Параметр maxDepth задаёт максимальное количество уровней каталогов для обхода. Значение 0 означает, что посещается только исходный файл, если это не запрещено менеджером безопасности. Значение MAX_VALUE может быть использовано, чтобы указать, что должны быть посещены все уровни. Метод visitFile вызывается для всех файлов, включая каталоги, встреченные на maxDepth, за исключением случаев, когда атрибуты базовых файлов не могут быть прочитаны, в этом случае вызывается метод
visitFileFailed.
Если посетитель возвращает результат null, то
NullPointerException выбрасывается.
Если установлен менеджер безопасности и он запрещает доступ к файлу (или каталогу), то этот доступ игнорируется, и для этого файла (или каталога) посетитель не вызывается.
- Parameters:
-
start- начальный файл -
options- опции для настройки обхода -
maxDepth- максимальное количество уровней каталогов для обхода -
visitor- посетитель файла, который будет вызван для каждого файла - Returns:
- исходный файл
- Throws:
-
IllegalArgumentException- если параметрmaxDepthотрицательный -
SecurityException- если менеджер безопасности запрещает доступ к исходному файлу. В случае с поставщиком по умолчанию, вызывается методcheckReadдля проверки доступа для чтения к каталогу. -
IOException- если метод посетителя выбрасывает ошибку ввода-вывода
walkFileTree
public static Path walkFileTree(Path start, FileVisitor<? super Path> visitor) throws IOException
Этот метод работает так, как будто вызов эквивалентен вычислению выражения:
Files.walkFileTree(start, EnumSet.noneOf(FileVisitOption.class), Integer.MAX_VALUE, visitor)
Другими словами, он не следует символическим ссылкам и посещает все уровни файловой структуры.- Parameters:
-
start- начальный файл -
visitor- посетитель файла, который будет вызван для каждого файла - Returns:
- исходный файл
- Throws:
-
SecurityException- если менеджер безопасности запрещает доступ к исходному файлу. В случае с поставщиком по умолчанию, вызывается методcheckReadдля проверки доступа для чтения к каталогу. -
IOException- если метод посетителя выбрасывает ошибку ввода-вывода
newBufferedReader
public static BufferedReader newBufferedReader(Path path, Charset cs) throws IOException
BufferedReader, который может быть использован для эффективного чтения текста из файла. Байты из файла декодируются в символы с использованием указанного набора символов. Чтение начинается с начала файла. Методы Reader, которые считывают из файла, выбрасывают
IOException, если прочитан некорректный или недопустимый байтовый последовательность.
- Parameters:
-
path- путь к файлу -
cs- набор символов для декодирования - Returns:
- новый буферизованный ридер, с буфером по умолчанию, для чтения текста из файла
- Throws:
-
IOException- если происходит ошибка ввода-вывода при открытии файла -
SecurityException- В случае с поставщиком по умолчанию, и при установке менеджера безопасности, вызывается методcheckReadдля проверки доступа для чтения к файлу. - See Also:
newBufferedReader
public static BufferedReader newBufferedReader(Path path) throws IOException
BufferedReader для эффективного чтения текста из файла. Байты из файла декодируются в символы, используя UTF-8 charset. Этот метод работает так, как будто вызов эквивалентен вычислению выражения:
Files.newBufferedReader(path, StandardCharsets.UTF_8)
- Parameters:
-
path- путь к файлу - Returns:
- новый буферизованный ридер, с буфером по умолчанию, для чтения текста из файла
- Throws:
-
IOException- если происходит ошибка ввода-вывода при открытии файла -
SecurityException- В случае с поставщиком по умолчанию, и при установке менеджера безопасности, вызывается методcheckReadдля проверки доступа для чтения к файлу. - Since:
- 1.8
newBufferedWriter
public static BufferedWriter newBufferedWriter(Path path, Charset cs, OpenOption... options) throws IOException
BufferedWriter, который может быть использован для эффективной записи текста в файл. Параметр options задаёт способ создания или открытия файла. Если нет опций, то этот метод работает так, как если бы присутствовали опции CREATE, TRUNCATE_EXISTING, и WRITE. Другими словами, он открывает файл для записи, создавая его, если он не существует, или обнуляя существующий regular-file до размера 0, если он существует. Методы Writer для записи текста выбрасывают IOException, если текст не может быть закодирован с использованием указанного набора символов.
- Parameters:
-
path- путь к файлу -
cs- набор символов для кодирования -
options- опции, определяющие, как файл открывается - Returns:
- новый буферизованный писатель, с буфером по умолчанию, для записи текста в файл
- Throws:
-
IllegalArgumentException- еслиoptionsсодержит недопустимую комбинацию опций -
IOException- если происходит ошибка ввода-вывода при открытии или создании файла -
UnsupportedOperationException- если указана неподдерживаемая опция -
FileAlreadyExistsException- Если файл с таким именем уже существует, и указана опцияCREATE_NEW(опциональное специфическое исключение) -
SecurityException- В случае с поставщиком по умолчанию, и при установке менеджера безопасности, вызывается методcheckWriteдля проверки доступа для записи к файлу. МетодcheckDeleteвызывается для проверки доступа на удаление, если файл открывается с опциейDELETE_ON_CLOSE. - See Also:
newBufferedWriter
public static BufferedWriter newBufferedWriter(Path path, OpenOption... options) throws IOException
BufferedWriter для записи текста в файл эффективным образом. Текст кодируется в байты для записи с использованием кодировки UTF-8 charset. Этот метод работает так, как если бы вызывающий его выражение было эквивалентно:
Files.newBufferedWriter(path, StandardCharsets.UTF_8, options)
- Параметры:
-
path- путь к файлу -
options- параметры, определяющие способ открытия файла - Возвращает:
- новый буферизованный писатель с размером буфера по умолчанию для записи текста в файл
- Исключение:
-
IllegalArgumentException- еслиoptionsсодержит недопустимую комбинацию параметров -
IOException- если при открытии или создании файла произошла ошибка ввода-вывода -
UnsupportedOperationException- если указан неподдерживаемый параметр -
FileAlreadyExistsException- Если файл с таким именем уже существует, и указан параметрCREATE_NEW(дополнительное специфичное исключение) -
SecurityException- В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается методcheckWriteдля проверки доступа к записи в файл. МетодcheckDeleteвызывается для проверки доступа к удалению, если файл открыт с параметромDELETE_ON_CLOSE. - С:
- 1.8
copy
public static long copy(InputStream in, Path target, CopyOption... options) throws IOException
По умолчанию, копия завершается неудачей, если целевой файл уже существует или является символической ссылкой. Если указан параметр REPLACE_EXISTING, и целевой файл уже существует, то он заменяется, если он не является непустым каталогом. Если целевой файл существует и является символической ссылкой, то символическая ссылка заменяется. В этом выпуске параметр REPLACE_EXISTING является единственным параметром, который должен поддерживаться этим методом. Дополнительные параметры могут быть добавлены в будущих выпусках.
Если при чтении из потока ввода или записи в файл происходит ошибка ввода-вывода, то это может произойти после создания целевого файла и после чтения или записи некоторых байтов. В результате, поток ввода может не находиться в конце потока и может быть в несогласованном состоянии. Сильно рекомендуется немедленно закрыть поток ввода, если произошла ошибка ввода-вывода.
Этот метод может блокироваться неопределенно долго, читая из потока ввода (или записывая в файл). Поведение в случае асинхронного закрытия потока ввода или прерывания потока во время копирования сильно зависит от поставщика потока ввода и файловой системы и поэтому не определено.
Пример использования: Предположим, мы хотим захватить веб-страницу и сохранить её в файл:
Path path = ...
URI u = URI.create("http://www.example.com/");
try (InputStream in = u.toURL().openStream()) {
Files.copy(in, path);
}
- Параметры:
-
in- поток ввода для чтения -
target- путь к файлу -
options- параметры, определяющие, как должна быть выполнена копия - Возвращает:
- количество прочитанных или записанных байтов
- Исключение:
-
IOException- если произошла ошибка ввода-вывода при чтении или записи -
FileAlreadyExistsException- если целевой файл существует, но не может быть заменён, потому что параметрREPLACE_EXISTINGне указан (дополнительное специфичное исключение) -
DirectoryNotEmptyException- параметрREPLACE_EXISTINGуказан, но файл не может быть заменён, потому что он является непустым каталогом (дополнительное специфичное исключение) * -
UnsupportedOperationException- еслиoptionsсодержит параметр копирования, который не поддерживается -
SecurityException- В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается методcheckWriteдля проверки доступа к записи в файл. В случае указания параметраREPLACE_EXISTING, вызывается метод менеджера безопасностиcheckDeleteдля проверки возможности удаления существующего файла.
copy
public static long copy(Path source, OutputStream out) throws IOException
Если при чтении из файла или записи в поток вывода происходит ошибка ввода-вывода, то это может произойти после чтения или записи некоторых байтов. В результате, поток вывода может быть в несогласованном состоянии. Сильно рекомендуется немедленно закрыть поток вывода, если произошла ошибка ввода-вывода.
Этот метод может блокироваться неопределенно долго, записывая в поток вывода (или читая из файла). Поведение в случае асинхронного закрытия потока вывода или прерывания потока во время копирования сильно зависит от поставщика потока вывода и файловой системы и поэтому не определено.
Обратите внимание, что если данный поток вывода является Flushable, то его метод flush может потребоваться вызвать после завершения этого метода для сброса любого буферизованного вывода.
- Параметры:
-
source- путь к файлу -
out- поток вывода для записи - Возвращает:
- количество прочитанных или записанных байтов
- Исключение:
-
IOException- если произошла ошибка ввода-вывода при чтении или записи -
SecurityException- В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается методcheckReadдля проверки доступа к чтению файла.
readAllBytes
public static byte[] readAllBytes(Path path) throws IOException
Обратите внимание, что этот метод предназначен для простых случаев, когда удобно прочитать все байты в массив байтов. Он не предназначен для чтения больших файлов.
- Параметры:
-
path- путь к файлу - Возвращает:
- массив байтов, содержащий прочитанные из файла байты
- Исключение:
-
IOException- если произошла ошибка ввода-вывода при чтении из потока -
OutOfMemoryError- если массив нужного размера не может быть выделен, например, файл больше, чем2GB -
SecurityException- В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается методcheckReadдля проверки доступа к чтению файла.
readString
public static String readString(Path path) throws IOException
UTF-8 charset. Метод гарантирует, что файл закрывается, когда всё содержимое прочитано или произошла ошибка ввода-вывода или другое исключение во время выполнения. Этот метод эквивалентен: readString(path, StandardCharsets.UTF_8).
- Параметры:
-
path- путь к файлу - Возвращает:
- строка, содержащая содержимое, прочитанное из файла
- Исключение:
-
IOException- если произошла ошибка ввода-вывода при чтении из файла или прочитанная последовательность байтов некорректна или не может быть отображена -
OutOfMemoryError- если файл слишком большой, например, больше чем2GB -
SecurityException- В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается методcheckReadдля проверки доступа к чтению файла. - С:
- 11
readString
public static String readString(Path path, Charset cs) throws IOException
Этот метод читает всё содержимое, включая разделители строк внутри и/или в конце. Результирующая строка будет содержать разделители строк так, как они появляются в файле.
- Замечание API:
- Этот метод предназначен для простых случаев, когда целесообразно и удобно прочитать содержимое файла в строку. Он не предназначен для чтения очень больших файлов.
- Параметры:
-
path- путь к файлу -
cs- кодировка, используемая для декодирования - Возвращает:
- строка, содержащая содержимое, прочитанное из файла
- Исключение:
-
IOException- если произошла ошибка ввода-вывода при чтении из файла или прочитанная последовательность байтов некорректна или не может быть отображена -
OutOfMemoryError- если файл слишком большой, например, больше чем2GB -
SecurityException- В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается методcheckReadдля проверки доступа к чтению файла. - С:
- 11
readAllLines
public static List<String> readAllLines(Path path, Charset cs) throws IOException
Этот метод распознаёт следующие разделители строк:
-
\u000Dпосле\u000A, КОД ВОЗВРАТА каретки, за которым следует ПЕРЕВОД СТРОКИ -
\u000A, ПЕРЕВОД СТРОКИ -
\u000D, КОД ВОЗВРАТА каретки
Дополнительные разделители строк Unicode могут быть распознаны в будущих выпусках.
Обратите внимание, что этот метод предназначен для простых случаев, когда удобно прочитать все строки в одной операции. Он не предназначен для чтения больших файлов.
- Parameters:
-
path- путь к файлу -
cs- набор символов для декодирования - Returns:
- строки из файла в виде
List; является лиListизменяемым или нет, зависит от реализации и поэтому не указано - Throws:
-
IOException- если произошла ошибка ввода-вывода при чтении из файла или прочитанная последовательность байтов была некорректной или не отображаемой -
SecurityException- В случае с предустановленным поставщиком и установленным менеджером безопасности методcheckReadвызывается для проверки доступа к чтению файла. - See Also:
readAllLines
public static List<String> readAllLines(Path path) throws IOException
UTF-8 charset. Этот метод работает так, как будто вызов эквивалентен оценке выражения:
Files.readAllLines(path, StandardCharsets.UTF_8)
- Parameters:
-
path- путь к файлу - Returns:
- строки из файла в виде
List; является лиListизменяемым или нет, зависит от реализации и поэтому не указано - Throws:
-
IOException- если произошла ошибка ввода-вывода при чтении из файла или прочитанная последовательность байтов была некорректной или не отображаемой -
SecurityException- В случае с предустановленным поставщиком и установленным менеджером безопасности методcheckReadвызывается для проверки доступа к чтению файла. - Since:
- 1.8
write
public static Path write(Path path, byte[] bytes, OpenOption... options) throws IOException
options определяет, как файл создаётся или открывается. Если опций нет, то этот метод работает так, как если бы присутствовали опции CREATE, TRUNCATE_EXISTING и WRITE. Другими словами, он открывает файл для записи, создаёт его, если он не существует, или обнуляет существующий regular-file до размера 0. Все байты в массиве байтов записываются в файл. Метод гарантирует, что файл закрывается, когда все байты были записаны (или произошла ошибка ввода-вывода или другая исключительная ситуация во время выполнения). Если произошла ошибка ввода-вывода, то она может произойти после создания или обнуления файла или после записи некоторых байтов в файл. Пример использования: По умолчанию метод создаёт новый файл или перезаписывает существующий. Предположим, что вместо этого вы хотите добавить байты к существующему файлу:
Path path = ...
byte[] bytes = ...
Files.write(path, bytes, StandardOpenOption.APPEND);
- Parameters:
-
path- путь к файлу -
bytes- массив байтов с байтами для записи -
options- опции, определяющие способ открытия файла - Returns:
- путь
- Throws:
-
IllegalArgumentException- еслиoptionsсодержит недопустимую комбинацию опций -
IOException- если произошла ошибка ввода-вывода при записи в файл или создании файла -
UnsupportedOperationException- если указана неподдерживаемая опция -
FileAlreadyExistsException- Если файл с таким именем уже существует, и указана опцияCREATE_NEW(дополнительное специфическое исключение) -
SecurityException- В случае с предустановленным поставщиком и установленным менеджером безопасности методcheckWriteвызывается для проверки доступа к записи в файл. МетодcheckDeleteвызывается для проверки доступа к удалению, если файл открыт с опциейDELETE_ON_CLOSE.
write
public static Path write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options) throws IOException
line.separator. Символы кодируются в байты с использованием указанного набора символов. Параметр options определяет, как файл создаётся или открывается. Если опций нет, то этот метод работает так, как если бы присутствовали опции CREATE, TRUNCATE_EXISTING и WRITE. Другими словами, он открывает файл для записи, создаёт его, если он не существует, или обнуляет существующий regular-file до размера 0. Метод гарантирует, что файл закрывается, когда все строки были записаны (или произошла ошибка ввода-вывода или другая исключительная ситуация во время выполнения). Если произошла ошибка ввода-вывода, то она может произойти после создания или обнуления файла или после записи некоторых байтов в файл.
- Parameters:
-
path- путь к файлу -
lines- объект для итерации по последовательностям символов -
cs- набор символов для кодирования -
options- опции, определяющие способ открытия файла - Returns:
- путь
- Throws:
-
IllegalArgumentException- еслиoptionsсодержит недопустимую комбинацию опций -
IOException- если произошла ошибка ввода-вывода при записи в файл или создании файла, или текст не может быть закодирован с использованием указанного набора символов -
UnsupportedOperationException- если указана неподдерживаемая опция -
FileAlreadyExistsException- Если файл с таким именем уже существует, и указана опцияCREATE_NEW(дополнительное специфическое исключение) -
SecurityException- В случае с предустановленным поставщиком и установленным менеджером безопасности методcheckWriteвызывается для проверки доступа к записи в файл. МетодcheckDeleteвызывается для проверки доступа к удалению, если файл открыт с опциейDELETE_ON_CLOSE.
write
public static Path write(Path path, Iterable<? extends CharSequence> lines, OpenOption... options) throws IOException
UTF-8 charset. Этот метод работает так, как будто вызов эквивалентен оценке выражения:
Files.write(path, lines, StandardCharsets.UTF_8, options)
- Parameters:
-
path- путь к файлу -
lines- объект для итерации по последовательностям символов -
options- опции, определяющие способ открытия файла - Returns:
- путь
- Throws:
-
IllegalArgumentException- еслиoptionsсодержит недопустимую комбинацию опций -
IOException- если произошла ошибка ввода-вывода при записи в файл или создании файла, или текст не может быть закодирован какUTF-8 -
UnsupportedOperationException- если указана неподдерживаемая опция -
SecurityException- В случае с предустановленным поставщиком и установленным менеджером безопасности методcheckWriteвызывается для проверки доступа к записи в файл. МетодcheckDeleteвызывается для проверки доступа к удалению, если файл открыт с опциейDELETE_ON_CLOSE. - Since:
- 1.8
writeString
public static Path writeString(Path path, CharSequence csq, OpenOption... options) throws IOException
UTF-8 charset. Этот метод эквивалентен: writeString(path, csq, StandardCharsets.UTF_8, options).
- Параметры:
-
path- путь к файлу -
csq- CharSequence, который нужно записать -
options- параметры, определяющие способ открытия файла - Возвращает:
- путь
- Исключения:
-
IllegalArgumentException- еслиoptionsсодержит недопустимую комбинацию параметров -
IOException- если при записи в или создании файла произошла ошибка ввода-вывода, или текст не может быть закодирован с использованием указанного набора символов -
UnsupportedOperationException- если указан неподдерживаемый параметр -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается методcheckWriteдля проверки доступа на запись в файл. МетодcheckDeleteвызывается для проверки доступа на удаление, если файл открыт с параметромDELETE_ON_CLOSE. - С тех пор:
- 11
writeString
public static Path writeString(Path path, CharSequence csq, Charset cs, OpenOption... options) throws IOException
Все символы записываются так, как они есть, включая разделители строк в последовательности символов. Не добавляются дополнительные символы.
Параметр options определяет, как файл создаётся или открывается. Если параметры отсутствуют, то этот метод работает так, как будто присутствуют параметры CREATE, TRUNCATE_EXISTING и WRITE. Другими словами, он открывает файл для записи, создавая файл, если он не существует, или изначально обнуляя существующий regular-file до размера 0.
- Параметры:
-
path- путь к файлу -
csq- CharSequence, который нужно записать -
cs- набор символов, который нужно использовать для кодирования -
options- параметры, определяющие способ открытия файла - Возвращает:
- путь
- Исключения:
-
IllegalArgumentException- еслиoptionsсодержит недопустимую комбинацию параметров -
IOException- если при записи в или создании файла произошла ошибка ввода-вывода, или текст не может быть закодирован с использованием указанного набора символов -
UnsupportedOperationException- если указан неподдерживаемый параметр -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается методcheckWriteдля проверки доступа на запись в файл. МетодcheckDeleteвызывается для проверки доступа на удаление, если файл открыт с параметромDELETE_ON_CLOSE. - С тех пор:
- 11
list
public static Stream<Path> list(Path dir) throws IOException
Stream, элементы которого — записи в каталоге. Перечисление не рекурсивное. Элементы потока — объекты Path, которые получаются как если бы путем resolving имени записи каталога относительно dir. Некоторые файловые системы поддерживают особые ссылки на сам каталог и родительский каталог. Записи, представляющие эти ссылки, не включаются.
Поток слабо согласован. Он потокобезопасен, но не замораживает каталог во время итерации, поэтому он может (или не может) отражать обновления каталога, произошедшие после возврата из этого метода.
Возвращаемый поток содержит ссылку на открытый каталог. Каталог закрывается при закрытии потока.
Обращение с закрытым потоком ведет себя так, как будто достигнут конец потока. Из-за предварительного чтения один или несколько элементов могут быть возвращены после закрытия потока.
Если при доступе к каталогу после возврата из этого метода возникает IOException, он обертывается в UncheckedIOException, который будет сгенерирован методом, вызвавшим доступ.
- Примечание API:
- Этот метод необходимо использовать в операторе try-with-resources или аналогичной управляющей структуре, чтобы гарантировать, что открытый каталог потока будет закрыт немедленно после завершения операций потока.
- Параметры:
-
dir- путь к каталогу - Возвращает:
- Поток, описывающий содержимое каталога
- Исключения:
-
NotDirectoryException- если файл не может быть открыт как каталог (необязательное конкретное исключение) -
IOException- если при открытии каталога произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызывается методcheckReadдля проверки доступа на чтение к каталогу. - С тех пор:
- 1.8
- См. также:
walk
public static Stream<Path> walk(Path start, int maxDepth, FileVisitOption... options) throws IOException
Stream, который лениво заполняется
Path путём обхода файловой структуры, укоренённой в заданном файле. Файловая структура обходится в глубину, элементы в потоке — объекты Path, которые получаются как если бы путем resolving относительного пути относительно start. stream обходит файловую структуру по мере потребления элементов. Возвращаемый Stream гарантированно содержит как минимум один элемент — сам начальный файл. Для каждого посещаемого файла поток пытается прочитать его BasicFileAttributes. Если файл является каталогом и может быть успешно открыт, записи в каталоге и их потомки будут следовать за каталогом в потоке по мере их обнаружения. Когда все записи будут посещены, каталог закрывается. Обход файловой структуры продолжается у следующего брата каталога.
Поток слабо согласован. Он не замораживает файловую структуру во время итерации, поэтому он может (или не может) отражать обновления файловой структуры, произошедшие после возврата из этого метода.
По умолчанию символические ссылки не отслеживаются автоматически этим методом. Если параметр options содержит опцию FOLLOW_LINKS, символические ссылки отслеживаются. При отслеживании ссылок и атрибуты целевого объекта не могут быть прочитаны, этот метод пытается получить BasicFileAttributes ссылки.
Если параметр options содержит опцию FOLLOW_LINKS, поток отслеживает посещённые каталоги, чтобы обнаруживать циклы. Цикл возникает, когда запись в каталоге является предком каталога. Обнаружение циклов происходит путём записи file-key каталогов, или, если ключи файлов недоступны, вызывая метод isSameFile для проверки, является ли каталог тем же файлом, что и предок. При обнаружении цикла он обрабатывается как ошибка ввода-вывода с экземпляром FileSystemLoopException.
Параметр maxDepth — максимальное число уровней каталогов для посещения. Значение 0 означает, что посещается только начальный файл, если доступ не запрещён менеджером безопасности. Значение MAX_VALUE может использоваться для указания необходимости посещения всех уровней.
При установке менеджера безопасности и запрете доступа к файлу (или каталогу), он игнорируется и не включается в поток.
Возвращаемый поток содержит ссылки на один или несколько открытых каталогов. Каталоги закрываются при закрытии потока.
Если при доступе к каталогу после возврата из этого метода возникает IOException, он обертывается в UncheckedIOException, который будет сгенерирован методом, вызвавшим доступ.
- Примечание API:
- Этот метод необходимо использовать в операторе try-with-resources или аналогичной управляющей структуре, чтобы гарантировать, что открытые каталоги потока будут закрыты немедленно после завершения операций потока.
- Параметры:
-
start- начальный файл -
maxDepth- максимальное число уровней каталогов для посещения -
options- параметры, настраивающие обход - Возвращает:
- поток
StreamобъектовPath - Исключения:
-
IllegalArgumentException- если параметрmaxDepthотрицательный -
SecurityException- Если менеджер безопасности запрещает доступ к начальному файлу. В случае с поставщиком по умолчанию вызывается методcheckReadдля проверки доступа на чтение к каталогу. -
IOException- если при доступе к начальному файлу произошла ошибка ввода-вывода. - С тех пор:
- 1.8
walk
public static Stream<Path> walk(Path start, FileVisitOption... options) throws IOException
Stream, который заполняется по мере необходимости, перебирая древовидную структуру файлов, укоренённую в заданном файле. Дерево файлов просматривается в порядке обхода в глубину, элементы в потоке — это объекты Path, полученные как если бы относительный путь был разрешён с помощью resolving относительно start. Этот метод работает так, как будто вызов эквивалентен оценке выражения:
Files.walk(start, Integer.MAX_VALUE, options)
Другими словами, он посещает все уровни древовидной структуры файлов. Возвращаемый поток содержит ссылки на один или несколько открытых каталогов. Каталоги закрываются при закрытии потока.
- API Note:
- Этот метод должен использоваться в блоке try-with-resources или в аналогичной управляющей структуре, чтобы гарантировать, что открытые каталоги потока будут закрыты сразу после завершения операций потока.
- Parameters:
-
start- исходный файл -
options- опции для настройки обхода - Returns:
- поток
StreamобъектовPath - Throws:
-
SecurityException- Если менеджер безопасности запрещает доступ к исходному файлу. В случае с поставщиком по умолчанию вызывается методcheckReadдля проверки доступа для чтения к каталогу. -
IOException- если при обращении к исходному файлу возникает ошибка ввода-вывода. - Since:
- 1.8
- See Also:
find
public static Stream<Path> find(Path start, int maxDepth, BiPredicate<Path,BasicFileAttributes> matcher, FileVisitOption... options) throws IOException
Stream, который заполняется по мере необходимости, выполняя поиск файлов в древовидной структуре файлов, укоренённой в заданном исходном файле. Этот метод проходит по древовидной структуре файлов таким же образом, как и метод walk. Для каждого найденного файла вызывается заданный предикат BiPredicate с его Path и атрибутами BasicFileAttributes. Объект Path получается как если бы относительный путь был разрешён с помощью resolving относительно
start, и включается в возвращаемый Stream только если предикат BiPredicate возвращает true. В отличие от вызова filter над Stream возвращаемым методом walk, этот метод может быть более эффективным, избегая излишнего получения BasicFileAttributes.
Возвращаемый поток содержит ссылки на один или несколько открытых каталогов. Каталоги закрываются при закрытии потока.
Если при обращении к каталогу после возврата из этого метода возникает исключение IOException, оно оборачивается в исключение UncheckedIOException, которое будет выброшено из метода, вызвавшего доступ.
- API Note:
- Этот метод должен использоваться в блоке try-with-resources или в аналогичной управляющей структуре, чтобы гарантировать, что открытые каталоги потока будут закрыты сразу после завершения операций потока.
- Parameters:
-
start- исходный файл -
maxDepth- максимальное количество уровней каталогов для поиска -
matcher- функция, используемая для определения того, должен ли файл быть включён в возвращаемый поток -
options- опции для настройки обхода - Returns:
- поток
StreamобъектовPath - Throws:
-
IllegalArgumentException- если параметрmaxDepthотрицательный -
SecurityException- Если менеджер безопасности запрещает доступ к исходному файлу. В случае с поставщиком по умолчанию вызывается методcheckReadдля проверки доступа для чтения к каталогу. -
IOException- если при обращении к исходному файлу возникает ошибка ввода-вывода. - Since:
- 1.8
- See Also:
lines
public static Stream<String> lines(Path path, Charset cs) throws IOException
readAllLines, этот метод не считывает все строки в список, а вместо этого заполняет их по мере потребления потока. Байты из файла декодируются в символы с использованием указанной кодировки, и поддерживаются те же разделители строк, что и в
readAllLines.
Возвращаемый поток содержит ссылку на открытый файл. Файл закрывается при закрытии потока.
Содержимое файла не должно изменяться во время выполнения терминальной операции потока. В противном случае результат терминальной операции потока не определён.
После возврата из этого метода любое последующее исключение ввода-вывода, возникающее при чтении из файла или при чтении неверной или необрабатываемой последовательности байтов, оборачивается в UncheckedIOException, который будет выброшен методом Stream, вызвавшим чтение. В случае выброса исключения IOException при закрытии файла, оно также оборачивается в UncheckedIOException.
- API Note:
- Этот метод должен использоваться в блоке try-with-resources или в аналогичной управляющей структуре, чтобы гарантировать, что открытый файл потока будет закрыт сразу после завершения операций потока.
- Implementation Note:
- Эта реализация поддерживает хорошую параллельную производительность потоков для стандартных кодировок
UTF-8,US-ASCIIиISO-8859-1. Такие оптимальные для строк кодировки имеют свойство, что закодированные байты символа новой строки ('\n') или возврата каретки ('\r') эффективно идентифицируются среди других закодированных символов при случайном доступе к байтам файла.Для не-оптимальных для строк кодировок разделитель потока-источника имеет плохие свойства разделения, подобные разделителю итератора или разделителю потока, возвращаемого из
BufferedReader.lines(). Плохие свойства разделения могут привести к плохой производительности параллельных потоков.Для оптимальных для строк кодировок разделитель потока-источника имеет хорошие свойства разделения, если файл содержит регулярную последовательность строк. Хорошие свойства разделения могут привести к хорошей производительности параллельных потоков. Разделитель для оптимальной для строк кодировки использует свойства кодировки (символ новой строки или возврат каретки является эффективным для идентификации), так что при разделении он примерно делит число покрытых строк пополам.
- Parameters:
-
path- путь к файлу -
cs- кодировка для декодирования - Returns:
- строки из файла в виде потока
- Throws:
-
IOException- если возникает ошибка ввода-вывода при открытии файла -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности вызывается методcheckReadдля проверки доступа для чтения к файлу. - Since:
- 1.8
- See Also:
lines
public static Stream<String> lines(Path path) throws IOException
UTF-8 charset. Возвращаемый поток содержит ссылку на открытый файл. Файл закрывается при закрытии потока.
Содержимое файла не должно изменяться во время выполнения терминальной операции потока. В противном случае результат терминальной операции потока не определён.
Этот метод работает так, как будто вызов эквивалентен оценке выражения:
Files.lines(path, StandardCharsets.UTF_8)
- API Note:
- Этот метод должен использоваться в блоке try-with-resources или в аналогичной управляющей структуре, чтобы гарантировать, что открытый файл потока будет закрыт сразу после завершения операций потока.
- Parameters:
-
path- путь к файлу - Returns:
- строки из файла в виде потока
- Throws:
-
IOException- если возникает ошибка ввода-вывода при открытии файла -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности вызывается методcheckReadдля проверки доступа для чтения к файлу. - Since:
- 1.8
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/file/Files.html