Spec-Zone.ru › OpenJDK 24

Файл класса

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.

Если не указано иное, символические ссылки автоматически перенаправляются на цель ссылки, будь то через строку имени пути или через объект File.

Родитель абстрактного имени пути может быть получен вызовом метода 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, преобразуя заданный file: URI в абстрактное имя пути.

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

Модификатор и тип Метод Описание
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()
Строит file: URI, который представляет это абстрактное имя пути.
URL toURL()
Устарело.
Этот метод не автоматически экранирует символы, которые являются незаконными в URL.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

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, преобразуя заданный file: URI в абстрактный путь.

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

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

new File( f.toURI()).equals( f.getAbsoluteFile())
при условии, что исходный абстрактный путь, URI и новый абстрактный путь были созданы в (возможно, разных вызовах) той же виртуальной машине Java. Однако эта связь обычно не сохраняется, когда file: URI, созданный в виртуальной машине на одной операционной системе, преобразуется в абстрактный путь в виртуальной машине на другой операционной системе.
Параметры:
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(), а затем отображает его в свою уникальную форму в зависимости от системы. Это обычно включает удаление избыточных имён, таких как "." и ".." из пути, разрешение символьных ссылок (в системах UNIX) и преобразование букв диска в стандартный регистр (в системах Microsoft Windows).

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

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

getCanonicalFile

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

toURL

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

toURI

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

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

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

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

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

Возвращает:
Абсолютный иерархический URI со схемой, равной "file", путём, представляющим это абстрактное имя пути, и неопределёнными компонентами authority, query и fragment
С:
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, гарантированно является обычным файлом.

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

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

isHidden

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

lastModified

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

В тех случаях, когда необходимо отличить исключение I/O от случая, когда 0L возвращается, или когда требуются несколько атрибутов одного и того же файла, или когда требуется время последнего доступа или время создания, можно использовать метод Files.readAttributes. Однако, если требуется только время последнего изменения, можно вместо этого использовать метод Files.getLastModifiedTime.

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

length

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

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

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

createNewFile

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

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

Возвращает:
true, если указанный файл не существует и был успешно создан; false, если указанный файл уже существует
Исключение:
IOException — Если произошла ошибка I/O
С:
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, если это абстрактное имя пути не обозначает каталог или если произошла ошибка I/O.

list

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

listFiles

public File[] listFiles(FileFilter filter)
Возвращает массив абстрактных путей, обозначающих файлы и каталоги в каталоге, обозначенном этим абстрактным именем пути, которые удовлетворяют заданному фильтру. Поведение этого метода такое же, как у метода listFiles(), за исключением того, что пути в возвращаемом массиве должны удовлетворять фильтру. Если заданный filter является null, то все пути принимаются. В противном случае путь удовлетворяет фильтру, если и только если значение true получается при вызове метода FileFilter.accept(File) фильтра на пути.
Параметры:
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.setExcutable(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.

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

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

getUsableSpace

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

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

Returns:
Количество доступных байтов в разделе или 0L, если абстрактное имя пути не указывает на раздел или если это число невозможно получить. На системах, где эта информация недоступна, этот метод будет эквивалентен вызову getFreeSpace().
Since:
1.6
See Also:
  • 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.

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

createTempFile

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

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

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

compareTo

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

equals

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

hashCode

public int hashCode()
Вычисляет код хэша для этого абстрактного имени пути. Поскольку равенство абстрактных имён путей изначально зависит от системы, так же зависит и вычисление их кодов хэша. В системах UNIX код хэша абстрактного имени пути равен исключающему ИЛИ кода хэша его строки имени пути и десятичного значения 1234321. В системах Microsoft Windows код хэша равен исключающему ИЛИ кода хэша строки его имени пути, преобразованной в нижний регистр, и десятичного значения 1234321. При преобразовании строки имени пути в нижний регистр регион не учитывается.
Overrides:
hashCode in class Object
Returns:
Код хэша для этого абстрактного имени пути
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

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

toPath

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

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

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

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

Returns:
Path, созданный из этого абстрактного пути
Throws:
InvalidPathException - если объект Path не может быть создан из абстрактного пути (см. FileSystem.getPath)
Since:
1.7
See Also:
  • Path.toFile()

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

Spec-Zone.ru

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