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