Spec-Zone.ru › OpenJDK 27

Класс File

java.lang.Object
java.io.File
Все реализуемые интерфейсы:
Serializable, Comparable<File>
public class File extends Object implements Serializable, Comparable<File>
Абстрактное представление путей к файлам и каталогам.

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

  1. Необязательная зависящая от системы строка префикса, например обозначение диска, "/" для корневого каталога UNIX или "\\\\" для пути UNC в Microsoft Windows, и
  2. Последовательность из нуля или более строковых имён.
Первое имя в абстрактном пути может быть именем каталога или, в случае путей UNC в Microsoft Windows, именем хоста. Каждое последующее имя в абстрактном пути обозначает каталог; последнее имя может обозначать каталог или файл. Пустой абстрактный путь не имеет префикса и содержит пустую последовательность имён. Обращение к файлу по пустому абстрактному пути равносильно обращению к текущему пользовательскому каталогу.

Преобразование строки пути в абстрактный путь и обратно неизбежно зависит от системы. При преобразовании абстрактного пути в строку пути каждое имя отделяется от следующего одним экземпляром стандартного символа-разделителя. Стандартный символ-разделитель имён задаётся системным свойством file.separator и доступен в общедоступных статических полях separator и separatorChar этого класса. При преобразовании строки пути в абстрактный путь имена в ней могут разделяться стандартным символом-разделителем имён или любым другим символом-разделителем имён, поддерживаемым базовой системой.

Путь, как абстрактный, так и представленный строкой, может быть абсолютным или относительным. Абсолютный путь является полным: для определения местоположения обозначаемого им файла не требуется дополнительная информация. Напротив, относительный путь должен интерпретироваться с учётом информации, полученной из другого пути. По умолчанию классы пакета java.io всегда разрешают относительные пути относительно текущего пользовательского каталога. Этот каталог задаётся системным свойством user.dir и обычно является каталогом, из которого была запущена виртуальная машина Java.

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

Родительский каталог абстрактного пути можно получить, вызвав метод getParent() этого класса. Он состоит из префикса пути и всех имён в последовательности имён пути, кроме последнего. Абсолютный путь каждого каталога является предком любого объекта File с абсолютным абстрактным путём, начинающимся с абсолютного пути этого каталога. Например, каталог, заданный абстрактным путём "/usr", является предком каталога, заданного путём "/usr/local/bin".

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

  • На платформах UNIX префикс абсолютного пути всегда равен "/". У относительных путей префикса нет. Абстрактный путь, обозначающий корневой каталог, имеет префикс "/" и пустую последовательность имён.
  • На платформах Microsoft Windows префикс пути, содержащего обозначение диска, состоит из буквы диска, за которой следует ":" и, возможно, "\\", если путь абсолютный. Префикс пути UNC — "\\\\"; имя хоста и имя общего ресурса являются первыми двумя именами в последовательности имён. У относительного пути без обозначения диска префикса нет.

Экземпляры этого класса могут обозначать или не обозначать фактический объект файловой системы, например файл или каталог. Если экземпляр обозначает такой объект, он находится в разделе. Раздел — это зависящая от операционной системы часть хранилища, предназначенная для файловой системы. Одно устройство хранения (например, физический диск, флеш-память или CD-ROM) может содержать несколько разделов. Если объект существует, он будет находиться в разделе, названном одним из предков абсолютной формы этого пути.

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

Экземпляры класса File неизменяемы: после создания абстрактный путь, представленный объектом File, больше не меняется.

Взаимодействие с пакетом java.nio.file

Пакет java.nio.file определяет интерфейсы и классы, позволяющие виртуальной машине Java обращаться к файлам, атрибутам файлов и файловым системам. Этот API можно использовать для преодоления многих ограничений класса java.io.File. Метод toPath можно использовать для получения объекта Path, который использует абстрактный путь, представленный объектом File, для поиска файла. Полученный объект Path можно использовать вместе с классом Files для более эффективного и широкого доступа к дополнительным операциям с файлами и атрибутам файлов, а также к исключениям ввода-вывода, помогающим диагностировать ошибки при сбое операции с файлом.

Начиная с:
1.0
См. также:
  • Форма сериализации

Краткое описание полей

Модификатор и тип Поле Описание
static final String pathSeparator
Зависящий от системы символ-разделитель путей, представленный в виде строки для удобства.
static final char pathSeparatorChar
Зависящий от системы символ-разделитель путей.
static final String separator
Зависящий от системы стандартный символ-разделитель имён, представленный в виде строки для удобства.
static final char separatorChar
Зависящий от системы стандартный символ-разделитель имён.

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

Конструктор Описание
File(File parent, String child)
Создаёт новый экземпляр File на основе родительского абстрактного пути и строки пути дочернего объекта.
File(String pathname)
Создаёт новый экземпляр File, преобразуя указанную строку пути в абстрактный путь.
File(String parent, String child)
Создаёт новый экземпляр File на основе строки пути родительского объекта и строки пути дочернего объекта.
File(URI uri)
Создаёт новый экземпляр File, преобразуя указанный URI file: в абстрактный путь.

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

Модификатор и тип Метод Описание
boolean canExecute()
Проверяет, может ли приложение выполнять файл, заданный этим абстрактным путём.
boolean canRead()
Проверяет, может ли приложение читать файл, заданный этим абстрактным путём.
boolean canWrite()
Проверяет, может ли приложение изменять файл, заданный этим абстрактным путём.
int compareTo(File pathname)
Сравнивает два абстрактных пути в лексикографическом порядке.
boolean createNewFile()
Атомарно создаёт новый пустой файл с именем, заданным этим абстрактным путём, только если файл с таким именем ещё не существует.
static File createTempFile(String prefix, String suffix)
Создаёт пустой файл в стандартном каталоге временных файлов, используя заданные префикс и суффикс для формирования имени.
static File createTempFile(String prefix, String suffix, File directory)
Создаёт новый пустой файл в указанном каталоге, используя заданные строки префикса и суффикса для формирования имени.
boolean delete()
Удаляет файл или каталог, заданный этим абстрактным путём.
void deleteOnExit()
Запрашивает удаление файла или каталога, заданного этим абстрактным путём, при завершении работы виртуальной машины.
boolean equals(Object obj)
Проверяет, равен ли этот абстрактный путь указанному объекту.
boolean exists()
Проверяет, существует ли файл или каталог, заданный этим абстрактным путём.
File getAbsoluteFile()
Возвращает абсолютную форму этого абстрактного пути.
String getAbsolutePath()
Возвращает строку абсолютного пути для этого абстрактного пути.
File getCanonicalFile()
Возвращает каноническую форму этого абстрактного пути.
String getCanonicalPath()
Возвращает строку канонического пути для этого абстрактного пути.
long getFreeSpace()
Возвращает количество нераспределённых байтов в разделе, названном этим абстрактным путём.
String getName()
Возвращает компонент имени этого абстрактного пути.
String getParent()
Возвращает строку пути родительского объекта для этого абстрактного пути или null, если этот путь не задаёт родительский каталог.
File getParentFile()
Возвращает абстрактный путь родительского объекта для этого абстрактного пути или null, если этот путь не задаёт родительский каталог.
String getPath()
Преобразует этот абстрактный путь в строку пути.
long getTotalSpace()
Возвращает размер раздела, названного этим абстрактным путём.
long getUsableSpace()
Возвращает количество байтов, доступных этой виртуальной машине в разделе, названном этим абстрактным путём.
int hashCode()
Вычисляет хеш-код этого абстрактного пути.
boolean isAbsolute()
Проверяет, является ли этот абстрактный путь абсолютным.
boolean isDirectory()
Проверяет, является ли файл, заданный этим абстрактным путём, каталогом.
boolean isFile()
Проверяет, является ли файл, заданный этим абстрактным путём, обычным файлом.
boolean isHidden()
Проверяет, является ли файл, заданный этим абстрактным путём, скрытым.
long lastModified()
Возвращает время последнего изменения файла, заданного этим абстрактным путём.
long length()
Возвращает длину файла, заданного этим абстрактным путём.
String[] list()
Возвращает массив строк с именами файлов и каталогов в каталоге, заданном этим абстрактным путём.
String[] list(FilenameFilter filter)
Возвращает массив строк с именами файлов и каталогов в каталоге, заданном этим абстрактным путём и удовлетворяющих указанному фильтру.
File[] listFiles()
Возвращает массив абстрактных путей, задающих файлы в каталоге, заданном этим абстрактным путём.
File[] listFiles(FileFilter filter)
Возвращает массив абстрактных путей, задающих файлы и каталоги в каталоге, заданном этим абстрактным путём и удовлетворяющих указанному фильтру.
File[] listFiles(FilenameFilter filter)
Возвращает массив абстрактных путей, задающих файлы и каталоги в каталоге, заданном этим абстрактным путём и удовлетворяющих указанному фильтру.
static File[] listRoots()
Перечисляет доступные корни файловой системы.
boolean mkdir()
Создаёт каталог с именем, заданным этим абстрактным путём.
boolean mkdirs()
Создаёт каталог с именем, заданным этим абстрактным путём, включая все необходимые, но несуществующие родительские каталоги.
boolean renameTo(File dest)
Переименовывает файл, заданный этим абстрактным путём.
boolean setExecutable(boolean executable)
Вспомогательный метод для установки права владельца на выполнение файла или каталога, заданного этим абстрактным путём.
boolean setExecutable(boolean executable, boolean ownerOnly)
Устанавливает право владельца или всех пользователей на выполнение файла или каталога, заданного этим абстрактным путём.
boolean setLastModified(long time)
Устанавливает время последнего изменения файла или каталога, заданного этим абстрактным путём.
boolean setReadable(boolean readable)
Вспомогательный метод для установки права владельца на чтение файла или каталога, заданного этим абстрактным путём.
boolean setReadable(boolean readable, boolean ownerOnly)
Устанавливает право владельца или всех пользователей на чтение файла или каталога, заданного этим абстрактным путём.
boolean setReadOnly()
Помечает файл или каталог, заданный этим абстрактным путём, так, чтобы разрешались только операции чтения.
boolean setWritable(boolean writable)
Вспомогательный метод для установки права владельца на запись в файл или каталог, заданный этим абстрактным путём.
boolean setWritable(boolean writable, boolean ownerOnly)
Устанавливает право владельца или всех пользователей на запись в файл или каталог, заданный этим абстрактным путём.
Path toPath()
Возвращает объект java.nio.file.Path, построенный на основе этого абстрактного пути.
String toString()
Возвращает строку пути для этого абстрактного пути.
URI toURI()
Создаёт URI file:, представляющий этот абстрактный путь.
URL toURL()
Устарело.
Этот метод не выполняет автоматическое экранирование символов, недопустимых в URL.

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

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

Подробное описание полей

separatorChar

public static final char separatorChar
Системный символ-разделитель имени по умолчанию. Это поле инициализируется первым символом значения системного свойства file.separator. В системах UNIX значение этого поля — '/'; в системах Microsoft Windows — '\\'.
См. также:
  • System.getProperty(java.lang.String)

separator

public static final String separator
Системный символ-разделитель имени по умолчанию, представленный для удобства в виде строки. Эта строка содержит один символ, а именно separatorChar.

pathSeparatorChar

public static final char pathSeparatorChar
Системный символ-разделитель пути. Это поле инициализируется первым символом значения системного свойства path.separator. Этот символ используется для разделения имён файлов в последовательности файлов, заданной в виде списка путей. В системах UNIX этот символ — ':'; в системах Microsoft Windows — ';'.
См. также:
  • System.getProperty(java.lang.String)

pathSeparator

public static final String pathSeparator
Системный символ-разделитель пути, представленный для удобства в виде строки. Эта строка содержит один символ, а именно pathSeparatorChar.

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

File

public File(String pathname)
Создаёт новый экземпляр File, преобразуя заданную строку пути в абстрактный путь. Если заданная строка пуста, результатом будет пустой абстрактный путь.
Параметры:
pathname — строка пути
Исключения:
NullPointerException — если аргумент pathname имеет значение null

File

public File(String parent, String child)
Создаёт новый экземпляр File из строки пути родительского объекта и строки пути дочернего объекта.

Если parent имеет значение null, новый экземпляр File создаётся так же, как при вызове конструктора File с одним аргументом для заданной строки пути child.

В противном случае строка пути parent обозначает каталог, а строка пути child — каталог или файл. Если строка пути child является абсолютной, она преобразуется в относительный путь системно-зависимым образом. Если parent — пустая строка, новый экземпляр File создаётся путём преобразования child в абстрактный путь и разрешения результата относительно системного каталога по умолчанию. В противном случае каждая строка пути преобразуется в абстрактный путь, а дочерний абстрактный путь разрешается относительно родительского.

Параметры:
parent — строка пути родительского объекта
child — строка пути дочернего объекта
Исключения:
NullPointerException — если child имеет значение null

File

public File(File parent, String child)
Создаёт новый экземпляр File из абстрактного пути родительского объекта и строки пути дочернего объекта.

Если parent имеет значение null, новый экземпляр File создаётся так же, как при вызове конструктора File с одним аргументом для заданной строки пути child.

В противном случае абстрактный путь parent обозначает каталог, а строка пути child — каталог или файл. Если строка пути child является абсолютной, она преобразуется в относительный путь системно-зависимым образом. Если parent — пустой абстрактный путь, новый экземпляр File создаётся путём преобразования child в абстрактный путь и разрешения результата относительно системного каталога по умолчанию. В противном случае каждая строка пути преобразуется в абстрактный путь, а дочерний абстрактный путь разрешается относительно родительского.

Параметры:
parent — абстрактный путь родительского объекта
child — строка пути дочернего объекта
Исключения:
NullPointerException — если child имеет значение null

File

public File(URI uri)
Создаёт новый экземпляр File, преобразуя заданный URI file: в абстрактный путь.

Точная форма URI file: зависит от системы, поэтому преобразование, выполняемое этим конструктором, также зависит от системы.

Для заданного абстрактного пути f гарантируется, что

new File( f.toURI()).equals( f.getAbsoluteFile())
при условии, что исходный абстрактный путь, URI и новый абстрактный путь созданы в одной и той же виртуальной машине Java (возможно, в ходе разных её запусков). Однако эта зависимость обычно не сохраняется, если URI file:, созданный в виртуальной машине под одной операционной системой, преобразуется в абстрактный путь в виртуальной машине под другой операционной системой.
Параметры:
uri — абсолютный иерархический URI со схемой, равной "file", непустым компонентом пути и неопределёнными компонентами полномочий, запроса и фрагмента
Исключения:
NullPointerException — если uri имеет значение null
IllegalArgumentException — если предусловия для параметра не выполнены
С версии:
1.4
См. также:
  • toURI()
  • URI

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

getName

public String getName()
Возвращает компонент имени этого абстрактного пути. Это последнее имя в последовательности имён пути. Если последовательность имён пути пуста, возвращается пустая строка.
Возвращает:
Компонент имени этого абстрактного пути или пустую строку, если последовательность имён пути пуста

getParent

public String getParent()
Возвращает строку пути родительского объекта этого абстрактного пути или null, если этот путь не обозначает родительский каталог.

Родительский объект абстрактного пути состоит из префикса пути, если он есть, и всех имён из последовательности имён пути, кроме последнего. Если последовательность имён пуста, путь не обозначает родительский каталог.

Возвращает:
Строку пути родительского каталога, обозначенного этим абстрактным путём, или null, если этот путь не обозначает родительский каталог

getParentFile

public File getParentFile()
Возвращает абстрактный путь родительского объекта этого абстрактного пути или null, если этот путь не обозначает родительский каталог.

Родительский объект абстрактного пути состоит из префикса пути, если он есть, и всех имён из последовательности имён пути, кроме последнего. Если последовательность имён пуста, путь не обозначает родительский каталог.

Возвращает:
Абстрактный путь родительского каталога, обозначенного этим абстрактным путём, или null, если этот путь не обозначает родительский каталог
С версии:
1.2

getPath

public String getPath()
Преобразует этот абстрактный путь в строку пути. В результирующей строке для разделения имён в последовательности имён используется default name-separator character.
Возвращает:
Строковое представление этого абстрактного пути

isAbsolute

public boolean isAbsolute()
Проверяет, является ли этот абстрактный путь абсолютным. Определение абсолютного пути зависит от системы. В системах UNIX путь является абсолютным, если его префикс — "/". В системах Microsoft Windows путь является абсолютным, если его префикс — обозначение диска, за которым следует "\\", или если его префикс — "\\\\".
Возвращает:
true, если этот абстрактный путь абсолютный, и false в противном случае

getAbsolutePath

public String getAbsolutePath()
Возвращает строку абсолютного пути этого абстрактного пути.

Если этот абстрактный путь уже является абсолютным, строка пути возвращается без изменений, как при вызове метода getPath(). Если этот абстрактный путь пуст, возвращается строка пути текущего пользовательского каталога, заданного системным свойством user.dir. В противном случае этот путь разрешается системно-зависимым образом. В системах UNIX относительный путь становится абсолютным путём относительно текущего пользовательского каталога. В системах Microsoft Windows относительный путь становится абсолютным путём относительно текущего каталога диска, указанного в пути, если он есть; иначе он разрешается относительно текущего пользовательского каталога.

Возвращает:
Строку абсолютного пути, обозначающую тот же файл или каталог, что и этот абстрактный путь
См. также:
  • isAbsolute()

getAbsoluteFile

public File getAbsoluteFile()
Возвращает абсолютную форму этого абстрактного пути. Эквивалентно new File(this.getAbsolutePath()).
Возвращает:
Абсолютный абстрактный путь, обозначающий тот же файл или каталог, что и этот абстрактный путь
С версии:
1.2

getCanonicalPath

public String getCanonicalPath() throws IOException
Возвращает строку канонического пути этого абстрактного пути.

Канонический путь является абсолютным и уникальным. Точное определение канонической формы зависит от системы. Этот метод сначала при необходимости преобразует путь в абсолютную форму, как при вызове метода getAbsolutePath(), а затем системно-зависимым образом преобразует его в уникальную форму. Обычно это включает удаление избыточных имён, таких как "." и "..", из пути, разрешение символических ссылок и приведение букв дисков к стандартному регистру (на платформах Microsoft Windows).

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

Возвращает:
Строку канонического пути, указывающую на тот же файл или каталог, что и этот абстрактный путь
Исключения:
IOException — при возникновении ошибки ввода-вывода, возможной, поскольку для построения канонического пути могут потребоваться запросы к файловой системе
С версии:
1.1
См. также:
  • Path.toRealPath(LinkOption...)

getCanonicalFile

public File getCanonicalFile() throws IOException
Возвращает каноническую форму этого абстрактного пути. Эквивалентно new File(this.getCanonicalPath()).
Возвращает:
Строку канонического пути, указывающую на тот же файл или каталог, что и этот абстрактный путь
Исключения:
IOException — при возникновении ошибки ввода-вывода, возможной, поскольку для построения канонического пути могут потребоваться запросы к файловой системе
С версии:
1.2
См. также:
  • Path.toRealPath(LinkOption...)

toURL

@Deprecated public URL toURL() throws MalformedURLException
Устарело.
Этот метод не выполняет автоматическое экранирование символов, недопустимых в URL. В новом коде рекомендуется преобразовывать абстрактный путь в URL сначала путём его преобразования в URI с помощью метода toURI, а затем преобразовывать URI в URL с помощью метода URI.toURL.
Преобразует этот абстрактный путь в URL file:. Точная форма URL зависит от системы. Если можно определить, что файл, на который указывает этот абстрактный путь, является каталогом, результирующий URL будет оканчиваться косой чертой.
Возвращает:
Объект URL, представляющий эквивалентный URL файла
Исключения:
MalformedURLException — если путь невозможно разобрать как URL
С версии:
1.2
См. также:
  • toURI()
  • URI
  • URI.toURL()
  • URL

toURI

public URI toURI()
Создаёт URI file:, представляющий этот абстрактный путь.

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

Для заданного абстрактного пути f гарантируется, что

new File( f.toURI()).equals( f.getAbsoluteFile())
при условии, что исходный абстрактный путь, URI и новый абстрактный путь созданы в одной и той же виртуальной машине Java (возможно, в ходе разных её запусков). Однако из-за системно-зависимой природы абстрактных путей эта зависимость обычно не сохраняется, если URI file:, созданный в виртуальной машине под одной операционной системой, преобразуется в абстрактный путь в виртуальной машине под другой операционной системой.

Обратите внимание: если этот абстрактный путь представляет UNC-путь, все его компоненты (включая компонент имени сервера) кодируются в пути URI. Компонент полномочий не определён, то есть представлен как null. Класс Path определяет метод toUri для кодирования имени сервера в компоненте полномочий результирующего URI. Метод toPath можно использовать для получения объекта Path, представляющего этот абстрактный путь.

Возвращает:
Абсолютный иерархический URI со схемой, равной "file", путём, представляющим этот абстрактный путь, и неопределёнными компонентами полномочий, запроса и фрагмента
С версии:
1.4
См. также:
  • File(java.net.URI)
  • URI
  • URI.toURL()

canRead

public boolean canRead()
Проверяет, может ли приложение читать файл, на который указывает этот абстрактный путь. На некоторых платформах виртуальную машину Java можно запустить со специальными привилегиями, позволяющими читать файлы, помеченные как недоступные для чтения. Поэтому этот метод может вернуть true, даже если у файла нет разрешения на чтение.
Возвращает:
true тогда и только тогда, когда файл, на который указывает этот абстрактный путь, существует и доступен приложению для чтения; в противном случае — false

canWrite

public boolean canWrite()
Проверяет, может ли приложение изменять файл, на который указывает этот абстрактный путь. На некоторых платформах виртуальную машину Java можно запустить со специальными привилегиями, позволяющими изменять файлы, помеченные как доступные только для чтения. Поэтому этот метод может вернуть true, даже если файл помечен как доступный только для чтения.
Возвращает:
true тогда и только тогда, когда файловая система действительно содержит файл, на который указывает этот абстрактный путь, и приложению разрешена запись в этот файл; в противном случае — false.

exists

public boolean exists()
Проверяет, существует ли файл или каталог, на который указывает этот абстрактный путь.
Возвращает:
true тогда и только тогда, когда файл или каталог, на который указывает этот абстрактный путь, существует; в противном случае — false

isDirectory

public boolean isDirectory()
Проверяет, является ли файл, на который указывает этот абстрактный путь, каталогом.

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

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

isFile

public boolean isFile()
Проверяет, является ли файл, на который указывает этот абстрактный путь, обычным файлом. Файл считается обычным, если он не является каталогом и соответствует другим системно-зависимым критериям. Гарантируется, что любой файл, не являющийся каталогом и созданный приложением Java, является обычным файлом.

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

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

isHidden

public boolean isHidden()
Проверяет, является ли файл, на который указывает этот абстрактный путь, скрытым. Точное определение понятия «скрытый» зависит от системы. В системах UNIX файл считается скрытым, если его имя начинается с точки ('.'). В системах Microsoft Windows файл считается скрытым, если он помечен соответствующим образом в файловой системе.
Примечание по реализации:
Если файл является символической ссылкой, то в системах UNIX она считается скрытой, если с точки начинается имя самой ссылки, а не её целевого объекта. В системах Windows символическая ссылка считается скрытой, если её целевой объект помечен как скрытый в файловой системе.
Возвращает:
true тогда и только тогда, когда файл, на который указывает этот абстрактный путь, считается скрытым согласно правилам базовой платформы
С версии:
1.2

lastModified

public long lastModified()
Возвращает время последнего изменения файла, на который указывает этот абстрактный путь.
Примечание по API:
Хотя единицей измерения возвращаемого значения являются миллисекунды, точность значения зависит от базовой файловой системы и может быть ниже. Например, некоторые файловые системы используют временные метки с точностью до секунды.

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

Возвращает:
Значение long, представляющее время последнего изменения файла в миллисекундах с начала эпохи (00:00:00 GMT, 1 января 1970 г.), или 0L, если файл не существует либо произошла ошибка ввода-вывода. Значение может быть отрицательным, указывая количество миллисекунд до начала эпохи

length

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

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

Возвращает:
Длину в байтах файла, на который указывает этот абстрактный путь, или 0L, если файл не существует. Некоторые операционные системы могут возвращать 0L для путей, указывающих на системно-зависимые объекты, например устройства или каналы.

createNewFile

public boolean createNewFile() throws IOException
Атомарно создаёт новый пустой файл с именем, заданным этим абстрактным путём, тогда и только тогда, когда файл с таким именем ещё не существует. Проверка существования файла и его создание, если он не существует, выполняются одной атомарной операцией относительно всех других действий с файловой системой, которые могут повлиять на этот файл.

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

Возвращает:
true, если файл с заданным именем не существовал и был успешно создан; false, если файл с заданным именем уже существует, в том числе если это символическая ссылка
Исключения:
IOException — если произошла ошибка ввода-вывода
С версии:
1.2

delete

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

Обратите внимание: класс Files определяет метод delete, который выбрасывает исключение IOException, если файл невозможно удалить. Это полезно для сообщения об ошибках и выяснения причин, по которым файл нельзя удалить.

Возвращает:
true тогда и только тогда, когда файл или каталог успешно удалён; в противном случае — false

deleteOnExit

public void deleteOnExit()
Запрашивает удаление файла или каталога, на который указывает этот абстрактный путь, при завершении работы виртуальной машины. Если путь указывает на символическую ссылку, будет удалена сама ссылка, а не её целевой объект. Файлы (или каталоги) удаляются в порядке, обратном порядку их регистрации. Повторный вызов этого метода для уже зарегистрированного на удаление файла или каталога не оказывает эффекта. Удаление будет предпринято только при штатном завершении работы виртуальной машины, определённом Спецификацией языка Java.

После запроса на удаление отменить его невозможно. Поэтому этот метод следует использовать с осторожностью.

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

С версии:
1.2
См. также:
  • delete()

list

public String[] list()
Возвращает массив строк с именами файлов и каталогов в каталоге, на который указывает этот абстрактный путь.

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

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

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

Возвращает:
Массив строк с именами файлов и каталогов в каталоге, на который указывает этот абстрактный путь. Если каталог пуст, массив будет пустым. Возвращает null, если этот абстрактный путь не указывает на каталог или произошла ошибка ввода-вывода.

list

public String[] list(FilenameFilter filter)
Возвращает массив строк с именами файлов и каталогов в каталоге, на который указывает этот абстрактный путь, удовлетворяющих указанному фильтру. Этот метод работает так же, как метод list(), за исключением того, что строки в возвращаемом массиве должны удовлетворять фильтру. Если заданный filter равен null, принимаются все имена. В противном случае имя удовлетворяет фильтру тогда и только тогда, когда при вызове метода FilenameFilter.accept(File, String) фильтра для этого абстрактного пути и имени файла или каталога в указанном им каталоге получается значение true.
Параметры:
filter — фильтр имен файлов
Возвращает:
Массив строк с именами файлов и каталогов в каталоге, на который указывает этот абстрактный путь и которые были приняты заданным filter. Массив будет пустым, если каталог пуст или фильтр не принял ни одного имени. Возвращает null, если этот абстрактный путь не указывает на каталог или произошла ошибка ввода-вывода.
См. также:
  • Files.newDirectoryStream(Path,String)

listFiles

public File[] listFiles()
Возвращает массив абстрактных путей, указывающих на файлы в каталоге, на который указывает этот абстрактный путь.

Если этот абстрактный путь не указывает на каталог, метод возвращает null. В противном случае возвращается массив объектов File — по одному для каждого файла или каталога в этом каталоге. Пути к самому каталогу и его родительскому каталогу не включаются в результат. Каждый возвращаемый абстрактный путь создается на основе этого абстрактного пути с помощью конструктора File(File, String). Поэтому, если этот путь абсолютный, каждый возвращаемый путь будет абсолютным; если этот путь относительный, каждый возвращаемый путь будет относительным к тому же каталогу.

Не гарантируется, что имена в возвращаемом массиве будут расположены в определенном порядке; в частности, не гарантируется, что они будут расположены в алфавитном порядке.

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

Возвращает:
Массив абстрактных путей, указывающих на файлы и каталоги в каталоге, на который указывает этот абстрактный путь. Массив будет пустым, если каталог пуст. Возвращает null, если этот абстрактный путь не указывает на каталог или произошла ошибка ввода-вывода.
С момента:
1.2

listFiles

public File[] listFiles(FilenameFilter filter)
Возвращает массив абстрактных путей, указывающих на файлы и каталоги в каталоге, на который указывает этот абстрактный путь и которые удовлетворяют указанному фильтру. Этот метод работает так же, как метод listFiles(), за исключением того, что пути в возвращаемом массиве должны удовлетворять фильтру. Если заданный filter равен null, принимаются все пути. В противном случае путь удовлетворяет фильтру тогда и только тогда, когда при вызове метода FilenameFilter.accept(File, String) фильтра для этого абстрактного пути и имени файла или каталога в указанном им каталоге получается значение true.
Параметры:
filter — фильтр имен файлов
Возвращает:
Массив абстрактных путей, указывающих на файлы и каталоги в каталоге, на который указывает этот абстрактный путь. Массив будет пустым, если каталог пуст. Возвращает null, если этот абстрактный путь не указывает на каталог или произошла ошибка ввода-вывода.
С момента:
1.2
См. также:
  • Files.newDirectoryStream(Path,String)

listFiles

public File[] listFiles(FileFilter filter)
Возвращает массив абстрактных путей, указывающих на файлы и каталоги в каталоге, на который указывает этот абстрактный путь и которые удовлетворяют указанному фильтру. Этот метод работает так же, как метод listFiles(), за исключением того, что пути в возвращаемом массиве должны удовлетворять фильтру. Если заданный filter равен null, принимаются все пути. В противном случае путь удовлетворяет фильтру тогда и только тогда, когда при вызове метода FileFilter.accept(File) фильтра для этого пути получается значение true.
Параметры:
filter — фильтр файлов
Возвращает:
Массив абстрактных путей, указывающих на файлы и каталоги в каталоге, на который указывает этот абстрактный путь. Массив будет пустым, если каталог пуст. Возвращает null, если этот абстрактный путь не указывает на каталог или произошла ошибка ввода-вывода.
С момента:
1.2
См. также:
  • Files.newDirectoryStream(Path,java.nio.file.DirectoryStream.Filter)

mkdir

public boolean mkdir()
Создает каталог, указанный этим абстрактным путем.
Возвращает:
true тогда и только тогда, когда каталог был создан; в противном случае — false

mkdirs

public boolean mkdirs()
Создает каталог, указанный этим абстрактным путем, включая все необходимые, но еще не существующие родительские каталоги. Обратите внимание, что если операция завершится неудачей, некоторые необходимые родительские каталоги все же могут быть созданы.
Возвращает:
true тогда и только тогда, когда каталог был создан вместе со всеми необходимыми родительскими каталогами; в противном случае — false

renameTo

public boolean renameTo(File dest)
Переименовывает файл, на который указывает этот абстрактный путь. Если этот путь указывает на символическую ссылку, будет переименована сама ссылка, а не ее целевой объект.

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

Обратите внимание, что класс Files определяет метод move для перемещения или переименования файла независимым от платформы способом.

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

setLastModified

public boolean setLastModified(long time)
Устанавливает время последнего изменения файла или каталога, на который указывает этот абстрактный путь.

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

Параметры:
time — новое время последнего изменения, измеряемое в миллисекундах с начала эпохи (00:00:00 GMT, 1 января 1970 года)
Возвращает:
true тогда и только тогда, когда операция выполнена успешно; в противном случае — false
Выбрасывает:
IllegalArgumentException — если аргумент отрицательный
С момента:
1.2

setReadOnly

public boolean setReadOnly()
Помечает файл или каталог, на который указывает этот абстрактный путь, как доступный только для чтения. После вызова этого метода файл или каталог не будет изменяться, пока он не будет удален или не будет помечен как доступный для записи. На некоторых платформах виртуальную машину Java можно запустить с особыми привилегиями, позволяющими изменять файлы, помеченные как доступные только для чтения. Возможность удаления файла или каталога, доступного только для чтения, зависит от базовой системы.
Возвращает:
true тогда и только тогда, когда операция выполнена успешно; в противном случае — false
С момента:
1.2

setWritable

public boolean setWritable(boolean writable, boolean ownerOnly)
Устанавливает разрешение на запись для владельца или для всех пользователей файла или каталога, на который указывает этот абстрактный путь. На некоторых платформах виртуальную машину Java можно запустить с особыми привилегиями, позволяющими изменять файлы, для которых запрещены операции записи.

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

Параметры:
writable — если true, устанавливает разрешение на выполнение операций записи; если false — запрещает операции записи
ownerOnly — если true, разрешение на запись применяется только к владельцу; в противном случае оно применяется ко всем пользователям. Если базовая файловая система не может отличать разрешение владельца на запись от разрешений остальных пользователей, разрешение будет применяться ко всем пользователям независимо от этого значения.
Возвращает:
true тогда и только тогда, когда операция выполнена успешно. Операция завершится неудачей, если у пользователя нет разрешения на изменение прав доступа для этого абстрактного пути.
С момента:
1.6

setWritable

public boolean setWritable(boolean writable)
Вспомогательный метод для установки разрешения на запись для владельца файла или каталога, на который указывает этот абстрактный путь. На некоторых платформах виртуальную машину Java можно запустить с особыми привилегиями, позволяющими изменять файлы, для которых запрещены операции записи.

Вызов этого метода в форме file.setWritable(arg) действует точно так же, как вызов

    file.setWritable(arg, true)
Параметры:
writable — если true, устанавливает разрешение на выполнение операций записи; если false — запрещает операции записи
Возвращает:
true тогда и только тогда, когда операция выполнена успешно. Операция завершится неудачей, если у пользователя нет разрешения на изменение прав доступа для этого абстрактного пути.
С момента:
1.6

setReadable

public boolean setReadable(boolean readable, boolean ownerOnly)
Устанавливает разрешение на чтение для владельца или для всех пользователей файла или каталога, на который указывает этот абстрактный путь. На некоторых платформах виртуальную машину Java можно запустить с особыми привилегиями, позволяющими читать файлы, помеченные как недоступные для чтения.

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

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

Параметры:
readable — если true, устанавливает разрешение на выполнение операций чтения; если false — запрещает операции чтения
ownerOnly — если true, разрешение на чтение применяется только к владельцу; в противном случае оно применяется ко всем пользователям. Если базовая файловая система не может отличать разрешение владельца на чтение от разрешений остальных пользователей, разрешение будет применяться ко всем пользователям независимо от этого значения.
Возвращает:
true, если операция выполнена успешно; false, если она завершилась неудачей; или значение параметра readable, если установка разрешения на чтение не поддерживается.
С момента:
1.6

setReadable

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

Вызов этого метода в форме file.setReadable(arg) действует точно так же, как вызов

    file.setReadable(arg, true)

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

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

setExecutable

public boolean setExecutable(boolean executable, boolean ownerOnly)
Устанавливает разрешение на выполнение для владельца или для всех пользователей файла или каталога, на который указывает этот абстрактный путь. На некоторых платформах виртуальную машину Java можно запустить с особыми привилегиями, позволяющими выполнять файлы, не помеченные как исполняемые.

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

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

Параметры:
executable — если true, устанавливает разрешение на выполнение операций выполнения; если false — запрещает операции выполнения
ownerOnly — если true, разрешение на выполнение применяется только к владельцу; в противном случае оно применяется ко всем пользователям. Если базовая файловая система не может отличать разрешение владельца на выполнение от разрешений остальных пользователей, разрешение будет применяться ко всем пользователям независимо от этого значения.
Возвращает:
true, если операция выполнена успешно; false, если она завершилась неудачей; или значение параметра executable, если установка разрешения на выполнение не поддерживается.
С момента:
1.6

setExecutable

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

Вызов этого метода в форме file.setExecutable(arg) действует точно так же, как вызов

    file.setExecutable(arg, true)

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

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

canExecute

public boolean canExecute()
Проверяет, может ли приложение выполнить файл, на который указывает этот абстрактный путь. На некоторых платформах виртуальную машину Java можно запустить с особыми привилегиями, позволяющими выполнять файлы, не помеченные как исполняемые. Поэтому этот метод может вернуть true, даже если у файла нет разрешения на выполнение.
Возвращает:
true тогда и только тогда, когда абстрактный путь существует и приложению разрешено выполнять файл
С момента:
1.6

listRoots

public static File[] listRoots()
Перечисляет доступные корни файловых систем.

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

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

Примечание по реализации:
Например, в Windows имеется корневой каталог для каждого активного диска, а в UNIX — один корневой каталог, а именно "/". На набор корней файловых систем влияют различные операции на уровне системы, например отключение или размонтирование физических или виртуальных дисков.

Канонический путь к файлу, находящемуся на другом компьютере и доступному через протокол удаленной файловой системы, такой как SMB или NFS, может начинаться или не начинаться с одного из корней, возвращаемых этим методом. Если путь к удаленному файлу синтаксически неотличим от пути к локальному файлу, он будет начинаться с одного из корней, возвращаемых этим методом. Так, например, этим методом будут возвращены объекты File, обозначающие корневые каталоги подключенных сетевых дисков в Windows, а объекты File, содержащие UNC-пути, возвращены не будут.

Возвращает:
Массив объектов File, обозначающих доступные корни файловых систем, или null, если определить набор корней не удалось. Массив будет пустым, если корней файловых систем нет.
С момента:
1.2
См. также:
  • FileStore

getTotalSpace

public long getTotalSpace()
Возвращает размер раздела, обозначенного этим абстрактным путем. Если общее число байтов в разделе превышает Long.MAX_VALUE, будет возвращено значение Long.MAX_VALUE.
Возвращает:
Размер раздела в байтах или 0L, если этот абстрактный путь не обозначает раздел или размер невозможно получить
С момента:
1.6
См. также:
  • FileStore.getTotalSpace()

getFreeSpace

public long getFreeSpace()
Возвращает количество нераспределенных байтов в разделе, обозначенном этим абстрактным путем. Если количество нераспределенных байтов в разделе превышает Long.MAX_VALUE, будет возвращено значение Long.MAX_VALUE.

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

Возвращает:
Количество нераспределенных байтов в разделе или 0L, если абстрактный путь не обозначает раздел или это значение невозможно получить. Это значение будет меньше или равно общему размеру файловой системы, возвращаемому методом getTotalSpace().
С момента:
1.6
См. также:
  • FileStore.getUnallocatedSpace()

getUsableSpace

public long getUsableSpace()
Возвращает количество байтов, доступных этой виртуальной машине в разделе, обозначенном этим абстрактным путем. Если количество доступных байтов в разделе превышает Long.MAX_VALUE, будет возвращено значение Long.MAX_VALUE. По возможности этот метод проверяет разрешения на запись и другие ограничения операционной системы, поэтому обычно он точнее оценивает, сколько новых данных действительно можно записать, чем метод getFreeSpace().

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

Возвращает:
Количество доступных байтов в разделе или 0L, если абстрактный путь не обозначает раздел или это значение невозможно получить. В системах, где эта информация недоступна, этот метод эквивалентен вызову getFreeSpace().
С момента:
1.6
См. также:
  • FileStore.getUsableSpace()

createTempFile

public static File createTempFile(String prefix, String suffix, File directory) throws IOException

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

  1. Файл, на который указывает возвращаемый абстрактный путь, не существовал до вызова этого метода; и
  2. Ни этот метод, ни какая-либо из его разновидностей не вернет тот же абстрактный путь повторно в рамках текущего запуска виртуальной машины.
Этот метод предоставляет лишь часть функциональности для работы с временными файлами. Чтобы файл, созданный этим методом, удалялся автоматически, используйте метод deleteOnExit().

Аргумент prefix должен содержать не менее трех символов. Рекомендуется использовать в качестве префикса короткую и понятную строку, например "hjb" или "mail". Аргумент suffix может быть равен null; в этом случае будет использоваться суффикс ".tmp".

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

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

Если аргумент directory равен null, будет использоваться системный каталог временных файлов по умолчанию. Каталог временных файлов по умолчанию задается системным свойством java.io.tmpdir. В системах UNIX значением этого свойства обычно является "/tmp" или "/var/tmp"; в системах Microsoft Windows — обычно "C:\\WINNT\\TEMP". При запуске виртуальной машины Java этому системному свойству можно задать другое значение, однако нет гарантии, что программное изменение этого свойства повлияет на каталог временных файлов, используемый этим методом.

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

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

createTempFile

public static File createTempFile(String prefix, String suffix) throws IOException
Создает пустой файл в каталоге временных файлов по умолчанию, используя заданные префикс и суффикс для формирования его имени. Вызов этого метода эквивалентен вызову createTempFile(prefix, suffix, null).

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

Параметры:
prefix - Строка префикса, используемая при формировании имени файла; должна содержать не менее трех символов
suffix - Строка суффикса, используемая при формировании имени файла; может быть null, в этом случае будет использован суффикс ".tmp"
Возвращает:
Абстрактный путь, указывающий на только что созданный пустой файл
Исключения:
IllegalArgumentException - Если аргумент prefix содержит менее трех символов
IOException - Если не удалось создать файл
С версии:
1.2
См. также:
  • Files.createTempDirectory(String,FileAttribute[])

compareTo

public int compareTo(File pathname)
Сравнивает два абстрактных пути в лексикографическом порядке. Порядок, определяемый этим методом, зависит от операционной системы. В системах UNIX при сравнении путей учитывается регистр букв; в системах Microsoft Windows — нет. Этот метод сравнивает только абстрактные пути; он не обращается к файловой системе, и наличие файла не обязательно.
Указано в:
compareTo в интерфейсе Comparable<File>
Параметры:
pathname - Абстрактный путь, с которым сравнивается этот абстрактный путь
Возвращает:
Ноль, если аргумент равен этому абстрактному пути; значение меньше нуля, если этот абстрактный путь лексикографически меньше аргумента; или значение больше нуля, если этот абстрактный путь лексикографически больше аргумента
С версии:
1.2

equals

public boolean equals(Object obj)
Проверяет равенство этого абстрактного пути заданному объекту. Возвращает true тогда и только тогда, когда аргумент не является null и представляет собой абстрактный путь, совпадающий с этим абстрактным путем. Равенство двух абстрактных путей зависит от операционной системы. В системах UNIX при сравнении путей учитывается регистр букв; в системах Microsoft Windows — нет. Этот метод проверяет только равенство абстрактных путей; он не обращается к файловой системе, и наличие файла не обязательно.
Переопределяет:
equals в классе Object
Параметры:
obj - Объект, сравниваемый с этим абстрактным путем
Возвращает:
true тогда и только тогда, когда объекты совпадают; в противном случае — false
См. также:
  • compareTo(File)
  • Files.isSameFile(Path,Path)

hashCode

public int hashCode()
Вычисляет хеш-код этого абстрактного пути. Поскольку равенство абстрактных путей по своей природе зависит от системы, вычисление их хеш-кодов также зависит от системы. В системах UNIX хеш-код абстрактного пути равен исключающему или хеш-кода его строкового представления и десятичного значения 1234321. В системах Microsoft Windows хеш-код равен исключающему или хеш-кода строкового представления пути, преобразованного в нижний регистр, и десятичного значения 1234321. При преобразовании строкового представления пути в нижний регистр локаль не учитывается.
Переопределяет:
hashCode в классе Object
Возвращает:
Хеш-код этого абстрактного пути
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

toString

public String toString()
Возвращает строковое представление пути этого абстрактного пути. Это просто строка, возвращаемая методом getPath().
Переопределяет:
toString в классе Object
Возвращает:
Строковое представление этого абстрактного пути

toPath

public Path toPath()
Возвращает объект java.nio.file.Path, созданный на основе этого абстрактного пути. Полученный Path связан с default-filesystem.

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

        FileSystems.getDefault().getPath(this.getPath());
При последующих вызовах этого метода возвращается тот же Path.

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

Возвращает:
Path, созданный на основе этого абстрактного пути
Исключения:
InvalidPathException - если объект Path не может быть создан на основе абстрактного пути (см. FileSystem.getPath)
С версии:
1.7
См. также:
  • Path.toFile()

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

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

Spec-Zone.ru

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