Класс File
- Все реализуемые интерфейсы:
Serializable, Comparable<File>
public class File extends Object implements Serializable, Comparable<File>
Пользовательские интерфейсы и операционные системы используют зависящие от системы строки путей для задания имён файлов и каталогов. Этот класс предоставляет абстрактное, не зависящее от системы представление иерархических путей. Абстрактный путь состоит из двух компонентов:
- Необязательная зависящая от системы строка префикса, например обозначение диска,
"/"для корневого каталога UNIX или"\\\\"для пути 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 на основе родительского абстрактного пути и строки пути дочернего объекта. |
File |
Создаёт новый экземпляр File, преобразуя указанную строку пути в абстрактный путь. |
File |
Создаёт новый экземпляр File на основе строки пути родительского объекта и строки пути дочернего объекта. |
File |
Создаёт новый экземпляр File, преобразуя указанный URI file: в абстрактный путь. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
canExecute() |
Проверяет, может ли приложение выполнять файл, заданный этим абстрактным путём. |
boolean |
canRead() |
Проверяет, может ли приложение читать файл, заданный этим абстрактным путём. |
boolean |
canWrite() |
Проверяет, может ли приложение изменять файл, заданный этим абстрактным путём. |
int |
compareTo |
Сравнивает два абстрактных пути в лексикографическом порядке. |
boolean |
createNewFile() |
Атомарно создаёт новый пустой файл с именем, заданным этим абстрактным путём, только если файл с таким именем ещё не существует. |
static File |
createTempFile |
Создаёт пустой файл в стандартном каталоге временных файлов, используя заданные префикс и суффикс для формирования имени. |
static File |
createTempFile |
Создаёт новый пустой файл в указанном каталоге, используя заданные строки префикса и суффикса для формирования имени. |
boolean |
delete() |
Удаляет файл или каталог, заданный этим абстрактным путём. |
void |
deleteOnExit() |
Запрашивает удаление файла или каталога, заданного этим абстрактным путём, при завершении работы виртуальной машины. |
boolean |
equals |
Проверяет, равен ли этот абстрактный путь указанному объекту. |
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 |
Возвращает массив строк с именами файлов и каталогов в каталоге, заданном этим абстрактным путём и удовлетворяющих указанному фильтру. |
File[] |
listFiles() |
Возвращает массив абстрактных путей, задающих файлы в каталоге, заданном этим абстрактным путём. |
File[] |
listFiles |
Возвращает массив абстрактных путей, задающих файлы и каталоги в каталоге, заданном этим абстрактным путём и удовлетворяющих указанному фильтру. |
File[] |
listFiles |
Возвращает массив абстрактных путей, задающих файлы и каталоги в каталоге, заданном этим абстрактным путём и удовлетворяющих указанному фильтру. |
static File[] |
listRoots() |
Перечисляет доступные корни файловой системы. |
boolean |
mkdir() |
Создаёт каталог с именем, заданным этим абстрактным путём. |
boolean |
mkdirs() |
Создаёт каталог с именем, заданным этим абстрактным путём, включая все необходимые, но несуществующие родительские каталоги. |
boolean |
renameTo |
Переименовывает файл, заданный этим абстрактным путём. |
boolean |
setExecutable |
Вспомогательный метод для установки права владельца на выполнение файла или каталога, заданного этим абстрактным путём. |
boolean |
setExecutable |
Устанавливает право владельца или всех пользователей на выполнение файла или каталога, заданного этим абстрактным путём. |
boolean |
setLastModified |
Устанавливает время последнего изменения файла или каталога, заданного этим абстрактным путём. |
boolean |
setReadable |
Вспомогательный метод для установки права владельца на чтение файла или каталога, заданного этим абстрактным путём. |
boolean |
setReadable |
Устанавливает право владельца или всех пользователей на чтение файла или каталога, заданного этим абстрактным путём. |
boolean |
setReadOnly() |
Помечает файл или каталог, заданный этим абстрактным путём, так, чтобы разрешались только операции чтения. |
boolean |
setWritable |
Вспомогательный метод для установки права владельца на запись в файл или каталог, заданный этим абстрактным путём. |
boolean |
setWritable |
Устанавливает право владельца или всех пользователей на запись в файл или каталог, заданный этим абстрактным путём. |
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 |
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
separatorChar
public static final char separatorChar
file.separator. В системах UNIX значение этого поля — '/'; в системах Microsoft Windows — '\\'.- См. также:
separator
public static final String separator
separatorChar.pathSeparatorChar
public static final char pathSeparatorChar
path.separator. Этот символ используется для разделения имён файлов в последовательности файлов, заданной в виде списка путей. В системах UNIX этот символ — ':'; в системах Microsoft Windows — ';'.- См. также:
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 гарантируется, что
при условии, что исходный абстрактный путь, URI и новый абстрактный путь созданы в одной и той же виртуальной машине Java (возможно, в ходе разных её запусков). Однако эта зависимость обычно не сохраняется, если URInew File(f.ftoURI()).equals(.getAbsoluteFile())
file:, созданный в виртуальной машине под одной операционной системой, преобразуется в абстрактный путь в виртуальной машине под другой операционной системой.- Параметры:
-
uri— абсолютный иерархический URI со схемой, равной"file", непустым компонентом пути и неопределёнными компонентами полномочий, запроса и фрагмента - Исключения:
-
NullPointerException— еслиuriимеет значениеnull -
IllegalArgumentException— если предусловия для параметра не выполнены - С версии:
- 1.4
- См. также:
Подробное описание методов
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()
"/". В системах Microsoft Windows путь является абсолютным, если его префикс — обозначение диска, за которым следует "\\", или если его префикс — "\\\\".- Возвращает:
-
true, если этот абстрактный путь абсолютный, иfalseв противном случае
getAbsolutePath
public String getAbsolutePath()
Если этот абстрактный путь уже является абсолютным, строка пути возвращается без изменений, как при вызове метода getPath(). Если этот абстрактный путь пуст, возвращается строка пути текущего пользовательского каталога, заданного системным свойством user.dir. В противном случае этот путь разрешается системно-зависимым образом. В системах UNIX относительный путь становится абсолютным путём относительно текущего пользовательского каталога. В системах Microsoft Windows относительный путь становится абсолютным путём относительно текущего каталога диска, указанного в пути, если он есть; иначе он разрешается относительно текущего пользовательского каталога.
- Возвращает:
- Строку абсолютного пути, обозначающую тот же файл или каталог, что и этот абстрактный путь
- См. также:
getAbsoluteFile
public File getAbsoluteFile()
new File(this.getAbsolutePath()).- Возвращает:
- Абсолютный абстрактный путь, обозначающий тот же файл или каталог, что и этот абстрактный путь
- С версии:
- 1.2
getCanonicalPath
public String getCanonicalPath() throws IOException
Канонический путь является абсолютным и уникальным. Точное определение канонической формы зависит от системы. Этот метод сначала при необходимости преобразует путь в абсолютную форму, как при вызове метода getAbsolutePath(), а затем системно-зависимым образом преобразует его в уникальную форму. Обычно это включает удаление избыточных имён, таких как "." и "..", из пути, разрешение символических ссылок и приведение букв дисков к стандартному регистру (на платформах Microsoft Windows).
Каждый путь, указывающий на существующий файл или каталог, имеет уникальную каноническую форму. Каждый путь, обозначающий несуществующий файл или каталог, также имеет уникальную каноническую форму. Каноническая форма пути к несуществующему файлу или каталогу может отличаться от канонической формы того же пути после создания файла или каталога. Аналогично, каноническая форма пути к существующему файлу или каталогу может отличаться от канонической формы того же пути после удаления файла или каталога.
- Возвращает:
- Строку канонического пути, указывающую на тот же файл или каталог, что и этот абстрактный путь
- Исключения:
-
IOException— при возникновении ошибки ввода-вывода, возможной, поскольку для построения канонического пути могут потребоваться запросы к файловой системе - С версии:
- 1.1
- См. также:
getCanonicalFile
public File getCanonicalFile() throws IOException
new File(this.getCanonicalPath()).- Возвращает:
- Строку канонического пути, указывающую на тот же файл или каталог, что и этот абстрактный путь
- Исключения:
-
IOException— при возникновении ошибки ввода-вывода, возможной, поскольку для построения канонического пути могут потребоваться запросы к файловой системе - С версии:
- 1.2
- См. также:
toURL
@Deprecated public URL toURL() throws MalformedURLException
file:. Точная форма URL зависит от системы. Если можно определить, что файл, на который указывает этот абстрактный путь, является каталогом, результирующий URL будет оканчиваться косой чертой.- Возвращает:
- Объект URL, представляющий эквивалентный URL файла
- Исключения:
-
MalformedURLException— если путь невозможно разобрать как URL - С версии:
- 1.2
- См. также:
toURI
public URI toURI()
file:, представляющий этот абстрактный путь. Точная форма URI зависит от системы. Если можно определить, что файл, на который указывает этот абстрактный путь, является каталогом, результирующий URI будет оканчиваться косой чертой.
Для заданного абстрактного пути f гарантируется, что
при условии, что исходный абстрактный путь, URI и новый абстрактный путь созданы в одной и той же виртуальной машине Java (возможно, в ходе разных её запусков). Однако из-за системно-зависимой природы абстрактных путей эта зависимость обычно не сохраняется, если URInewfFile(.toURI()).equals(f.getAbsoluteFile())
file:, созданный в виртуальной машине под одной операционной системой, преобразуется в абстрактный путь в виртуальной машине под другой операционной системой. Обратите внимание: если этот абстрактный путь представляет UNC-путь, все его компоненты (включая компонент имени сервера) кодируются в пути URI. Компонент полномочий не определён, то есть представлен как null. Класс Path определяет метод toUri для кодирования имени сервера в компоненте полномочий результирующего URI. Метод toPath можно использовать для получения объекта Path, представляющего этот абстрактный путь.
- Возвращает:
- Абсолютный иерархический URI со схемой, равной
"file", путём, представляющим этот абстрактный путь, и неопределёнными компонентами полномочий, запроса и фрагмента - С версии:
- 1.4
- См. также:
canRead
public boolean canRead()
true, даже если у файла нет разрешения на чтение.- Возвращает:
-
trueтогда и только тогда, когда файл, на который указывает этот абстрактный путь, существует и доступен приложению для чтения; в противном случае —false
canWrite
public boolean canWrite()
true, даже если файл помечен как доступный только для чтения.- Возвращает:
-
trueтогда и только тогда, когда файловая система действительно содержит файл, на который указывает этот абстрактный путь, и приложению разрешена запись в этот файл; в противном случае —false.
exists
public boolean exists()
- Возвращает:
-
trueтогда и только тогда, когда файл или каталог, на который указывает этот абстрактный путь, существует; в противном случае —false
isDirectory
public boolean isDirectory()
Если необходимо отличить исключение ввода-вывода от ситуации, когда файл не является каталогом, или одновременно получить несколько атрибутов одного файла, можно использовать метод Files.readAttributes.
- Возвращает:
-
trueтогда и только тогда, когда файл, на который указывает этот абстрактный путь, существует и является каталогом; в противном случае —false
isFile
public boolean isFile()
Если необходимо отличить исключение ввода-вывода от ситуации, когда файл не является обычным файлом, или одновременно получить несколько атрибутов одного файла, можно использовать метод Files.readAttributes.
- Возвращает:
-
trueтогда и только тогда, когда файл, на который указывает этот абстрактный путь, существует и является обычным файлом; в противном случае —false
isHidden
public boolean isHidden()
'.'). В системах 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()
После запроса на удаление отменить его невозможно. Поэтому этот метод следует использовать с осторожностью.
Примечание: этот метод не следует использовать для блокировки файлов, поскольку соответствующий протокол невозможно надёжно реализовать. Вместо него следует использовать средство FileLock.
- С версии:
- 1.2
- См. также:
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, если этот абстрактный путь не указывает на каталог или произошла ошибка ввода-вывода. - См. также:
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
- См. также:
listFiles
public File[] listFiles(FileFilter filter)
listFiles(), за исключением того, что пути в возвращаемом массиве должны удовлетворять фильтру. Если заданный filter равен null, принимаются все пути. В противном случае путь удовлетворяет фильтру тогда и только тогда, когда при вызове метода FileFilter.accept(File) фильтра для этого пути получается значение true.- Параметры:
-
filter— фильтр файлов - Возвращает:
- Массив абстрактных путей, указывающих на файлы и каталоги в каталоге, на который указывает этот абстрактный путь. Массив будет пустым, если каталог пуст. Возвращает
null, если этот абстрактный путь не указывает на каталог или произошла ошибка ввода-вывода. - С момента:
- 1.2
- См. также:
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()
- Возвращает:
-
trueтогда и только тогда, когда операция выполнена успешно; в противном случае —false - С момента:
- 1.2
setWritable
public boolean setWritable(boolean writable, boolean ownerOnly)
Класс Files определяет методы для работы с атрибутами файлов, включая разрешения. Их можно использовать, если требуется более точное управление разрешениями файлов.
- Параметры:
-
writable— еслиtrue, устанавливает разрешение на выполнение операций записи; еслиfalse— запрещает операции записи -
ownerOnly— еслиtrue, разрешение на запись применяется только к владельцу; в противном случае оно применяется ко всем пользователям. Если базовая файловая система не может отличать разрешение владельца на запись от разрешений остальных пользователей, разрешение будет применяться ко всем пользователям независимо от этого значения. - Возвращает:
-
trueтогда и только тогда, когда операция выполнена успешно. Операция завершится неудачей, если у пользователя нет разрешения на изменение прав доступа для этого абстрактного пути. - С момента:
- 1.6
setWritable
public boolean setWritable(boolean writable)
Вызов этого метода в форме file.setWritable(arg) действует точно так же, как вызов
file.setWritable(arg, true)
- Параметры:
-
writable— еслиtrue, устанавливает разрешение на выполнение операций записи; еслиfalse— запрещает операции записи - Возвращает:
-
trueтогда и только тогда, когда операция выполнена успешно. Операция завершится неудачей, если у пользователя нет разрешения на изменение прав доступа для этого абстрактного пути. - С момента:
- 1.6
setReadable
public boolean setReadable(boolean readable, boolean ownerOnly)
Класс Files определяет методы для работы с атрибутами файлов, включая разрешения. Их можно использовать, если требуется более точное управление разрешениями файлов.
Если платформа поддерживает установку разрешения на чтение файла, но у пользователя нет разрешения на изменение прав доступа для этого абстрактного пути, операция завершится неудачей. Если платформа не поддерживает установку разрешения на чтение файла, этот метод ничего не делает и возвращает значение параметра readable.
- Параметры:
-
readable— еслиtrue, устанавливает разрешение на выполнение операций чтения; еслиfalse— запрещает операции чтения -
ownerOnly— еслиtrue, разрешение на чтение применяется только к владельцу; в противном случае оно применяется ко всем пользователям. Если базовая файловая система не может отличать разрешение владельца на чтение от разрешений остальных пользователей, разрешение будет применяться ко всем пользователям независимо от этого значения. - Возвращает:
-
true, если операция выполнена успешно;false, если она завершилась неудачей; или значение параметраreadable, если установка разрешения на чтение не поддерживается. - С момента:
- 1.6
setReadable
public boolean setReadable(boolean readable)
Вызов этого метода в форме file.setReadable(arg) действует точно так же, как вызов
file.setReadable(arg, true)
Если платформа поддерживает установку разрешения на чтение файла, но у пользователя нет разрешения на изменение прав доступа для этого абстрактного пути, операция завершится неудачей. Если платформа не поддерживает установку разрешения на чтение файла, этот метод ничего не делает и возвращает значение параметра readable.
- Параметры:
-
readable— еслиtrue, устанавливает разрешение на выполнение операций чтения; еслиfalse— запрещает операции чтения - Возвращает:
-
true, если операция выполнена успешно;false, если она завершилась неудачей; или значение параметраreadable, если установка разрешения на чтение не поддерживается. - С момента:
- 1.6
setExecutable
public boolean setExecutable(boolean executable, boolean ownerOnly)
Класс Files определяет методы для работы с атрибутами файлов, включая разрешения. Их можно использовать, если требуется более точное управление разрешениями файлов.
Если платформа поддерживает установку разрешения на выполнение файла, но у пользователя нет разрешения на изменение прав доступа для этого абстрактного пути, операция завершится неудачей. Если платформа не поддерживает установку разрешения на выполнение файла, этот метод ничего не делает и возвращает значение параметра executable.
- Параметры:
-
executable— еслиtrue, устанавливает разрешение на выполнение операций выполнения; еслиfalse— запрещает операции выполнения -
ownerOnly— еслиtrue, разрешение на выполнение применяется только к владельцу; в противном случае оно применяется ко всем пользователям. Если базовая файловая система не может отличать разрешение владельца на выполнение от разрешений остальных пользователей, разрешение будет применяться ко всем пользователям независимо от этого значения. - Возвращает:
-
true, если операция выполнена успешно;false, если она завершилась неудачей; или значение параметраexecutable, если установка разрешения на выполнение не поддерживается. - С момента:
- 1.6
setExecutable
public boolean setExecutable(boolean executable)
Вызов этого метода в форме file.setExecutable(arg) действует точно так же, как вызов
file.setExecutable(arg, true)
Если платформа поддерживает установку разрешения на выполнение файла, но у пользователя нет разрешения на изменение прав доступа для этого абстрактного пути, операция завершится неудачей. Если платформа не поддерживает установку разрешения на выполнение файла, этот метод ничего не делает и возвращает значение параметра executable.
- Параметры:
-
executable— еслиtrue, устанавливает разрешение на выполнение операций выполнения; еслиfalse— запрещает операции выполнения - Возвращает:
-
true, если операция выполнена успешно;false, если она завершилась неудачей; или значение параметраexecutable, если установка разрешения на выполнение не поддерживается. - С момента:
- 1.6
canExecute
public boolean canExecute()
true, даже если у файла нет разрешения на выполнение.- Возвращает:
-
trueтогда и только тогда, когда абстрактный путь существует и приложению разрешено выполнять файл - С момента:
- 1.6
listRoots
public static File[] listRoots()
Определенная платформа Java может поддерживать ноль или более иерархически организованных файловых систем. Каждая файловая система имеет каталог root, из которого можно получить доступ ко всем остальным файлам этой файловой системы.
Этот метод возвращает массив объектов File, обозначающих корневые каталоги доступных файловых систем. Гарантируется, что канонический путь к любому файлу, физически находящемуся на локальном компьютере, будет начинаться с одного из корней, возвращаемых этим методом. При этом не гарантируется, что корневой каталог будет доступен.
- Примечание по реализации:
- Например, в Windows имеется корневой каталог для каждого активного диска, а в UNIX — один корневой каталог, а именно
"/". На набор корней файловых систем влияют различные операции на уровне системы, например отключение или размонтирование физических или виртуальных дисков.Канонический путь к файлу, находящемуся на другом компьютере и доступному через протокол удаленной файловой системы, такой как SMB или NFS, может начинаться или не начинаться с одного из корней, возвращаемых этим методом. Если путь к удаленному файлу синтаксически неотличим от пути к локальному файлу, он будет начинаться с одного из корней, возвращаемых этим методом. Так, например, этим методом будут возвращены объекты
File, обозначающие корневые каталоги подключенных сетевых дисков в Windows, а объектыFile, содержащие UNC-пути, возвращены не будут. - Возвращает:
- Массив объектов
File, обозначающих доступные корни файловых систем, илиnull, если определить набор корней не удалось. Массив будет пустым, если корней файловых систем нет. - С момента:
- 1.2
- См. также:
getTotalSpace
public long getTotalSpace()
Long.MAX_VALUE, будет возвращено значение Long.MAX_VALUE.- Возвращает:
- Размер раздела в байтах или
0L, если этот абстрактный путь не обозначает раздел или размер невозможно получить - С момента:
- 1.6
- См. также:
getFreeSpace
public long getFreeSpace()
Long.MAX_VALUE, будет возвращено значение Long.MAX_VALUE. Возвращаемое количество нераспределенных байтов — это лишь подсказка, а не гарантия того, что можно использовать большую часть этих байтов или вообще какие-либо из них. Наиболее вероятно, что количество нераспределенных байтов будет точным сразу после вызова этого метода. Любые внешние операции ввода-вывода, в том числе выполняемые в системе вне этой виртуальной машины, могут привести к неточности этого значения. Метод не гарантирует успешного выполнения операций записи в эту файловую систему.
- Возвращает:
- Количество нераспределенных байтов в разделе или
0L, если абстрактный путь не обозначает раздел или это значение невозможно получить. Это значение будет меньше или равно общему размеру файловой системы, возвращаемому методомgetTotalSpace(). - С момента:
- 1.6
- См. также:
getUsableSpace
public long getUsableSpace()
Long.MAX_VALUE, будет возвращено значение Long.MAX_VALUE. По возможности этот метод проверяет разрешения на запись и другие ограничения операционной системы, поэтому обычно он точнее оценивает, сколько новых данных действительно можно записать, чем метод getFreeSpace(). Возвращаемое количество доступных байтов — это лишь подсказка, а не гарантия того, что можно использовать большую часть этих байтов или вообще какие-либо из них. Наиболее вероятно, что количество доступных байтов будет точным сразу после вызова этого метода. Любые внешние операции ввода-вывода, в том числе выполняемые в системе вне этой виртуальной машины, могут привести к неточности этого значения. Метод не гарантирует успешного выполнения операций записи в эту файловую систему.
- Возвращает:
- Количество доступных байтов в разделе или
0L, если абстрактный путь не обозначает раздел или это значение невозможно получить. В системах, где эта информация недоступна, этот метод эквивалентен вызовуgetFreeSpace(). - С момента:
- 1.6
- См. также:
createTempFile
public static File createTempFile(String prefix, String suffix, File directory) throws IOException
Создает новый пустой файл в указанном каталоге, используя заданные строки префикса и суффикса для формирования его имени. Если этот метод завершается успешно, гарантируется, что:
- Файл, на который указывает возвращаемый абстрактный путь, не существовал до вызова этого метода; и
- Ни этот метод, ни какая-либо из его разновидностей не вернет тот же абстрактный путь повторно в рамках текущего запуска виртуальной машины.
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
- См. также:
compareTo
public int compareTo(File pathname)
- Указано в:
-
compareToв интерфейсеComparable<File> - Параметры:
-
pathname- Абстрактный путь, с которым сравнивается этот абстрактный путь - Возвращает:
- Ноль, если аргумент равен этому абстрактному пути; значение меньше нуля, если этот абстрактный путь лексикографически меньше аргумента; или значение больше нуля, если этот абстрактный путь лексикографически больше аргумента
- С версии:
- 1.2
equals
public boolean equals(Object obj)
true тогда и только тогда, когда аргумент не является null и представляет собой абстрактный путь, совпадающий с этим абстрактным путем. Равенство двух абстрактных путей зависит от операционной системы. В системах UNIX при сравнении путей учитывается регистр букв; в системах Microsoft Windows — нет. Этот метод проверяет только равенство абстрактных путей; он не обращается к файловой системе, и наличие файла не обязательно.hashCode
public int hashCode()
1234321. В системах Microsoft Windows хеш-код равен исключающему или хеш-кода строкового представления пути, преобразованного в нижний регистр, и десятичного значения 1234321. При преобразовании строкового представления пути в нижний регистр локаль не учитывается.toString
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
- См. также:
© 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.