В Java класс File представляет файлы и пути каталогов в абстрактной манере. Этот класс используется для создания, поиска, удаления файлов и каталогов и т.д.

Конструкторы

File-объект представляет собой фактический файл или каталог на диске. Ниже приведен список конструкторов для создания file-объекта.

Конструктор и описание
1File(File parent, String child)
Конструктор создает новый экземпляр файла из родительского абстрактного пути и строки дочернего пути.
2File(String pathname)
Конструктор создает новый экземпляр файла, преобразовывая указанную строку pathname в абстрактный путь.
3File(String parent, String child)
Конструктор создает новый экземпляр файла из строки родительского пути и строки дочернего пути.
4File(URI uri)
Конструктор создает новый экземпляр файла, преобразовывая данный файл: URI в абстрактный путь.

Методы

Если Вы используйте file-объекты, то у Вас есть под рукой список вспомогательных методов, которые можно использовать для управления файлами.

Метод и описание
1public String getName()
Возвращает имя файла или каталога, по указанному абстрактному имени пути.
2public String getParent()
Возвращает строковый путь родителя абстрактного пути, или null, если путь не указывает родительский каталог.
3public File getParentFile()
Возвращает абстрактный путь родителя абстрактного пути, или null, если путь не указывает родительский каталог.
4public String getPath()
Преобразует абстрактный путь в строку.
5public boolean isAbsolute()
Провяет, является ли абстрактный путь абсолютным. Возвращает true, если абстрактный путь является абсолютным, иначе false.
6public String getAbsolutePath()
Возвращает строкой абсолютный путь.
7public boolean canRead()
Проверяет, может ли приложение прочитать файл, по указанному абстрактному имени пути. Возвращает true тогда и только тогда, когда файл, указанный в абстрактном пути, существует и может быть прочитан приложением; в противном случае false.
8public boolean canWrite()
Проверяет, может ли приложение изменять файл, по указанному абстрактному имени пути. Возвращает true тогда и только тогда, когда файловая система фактически содержит файл, по указанному абстрактному имени пути, и приложению разрешено записывать в файл; в противном случае false.
9public boolean exists()
Проверяет, существует ли файл или каталог, по указанному абстрактному имени пути. Возвращает true тогда и только тогда, когда существует файл или каталог, по указанному абстрактному имени пути; в противном случае false.
10public boolean isDirectory()
Проверяет, является ли файл, по указанному абстрактному имени пути, каталогом. Возвращает true тогда и только тогда, когда файл, обозначенный этим абстрактным именем, существует и является каталогом; в противном случае false.
11public boolean isFile()
Проверяет, является ли файл, по указанному абстрактному имени пути, нормальным файлом. Файл является нормальным, если он не является каталогом и, кроме того, удовлетворяет другим системным критериям. Любой файл без каталога, созданный приложением Java, гарантированно является нормальным файлом. Возвращает true тогда и только тогда, когда файл, обозначенный этим абстрактным пустым именем, существует и является нормальным файлом; в противном случае false.
12public long lastModified()
Возвращает время последнего изменения файла, по указанному абстрактному имени пути. Возвращает длинное значение, представляющее время последнего изменения файла, измеренное в миллисекундах с эпохи (00:00:00 GMT, 1 января 1970 г.) или 0L, если файл не существует или возникает ошибка ввода-вывода.
13public long length()
Возвращает длину файла, обозначенного этим абстрактным именем пути. Возвращаемое значение не указано, если путь указывает на каталог.
14public boolean createNewFile() throws IOException
Атомарно создает новый пустой файл, названный этим абстрактным именем пути, тогда и только тогда, когда файл с этим именем еще не существует. Возвращает true, если названный файл не существует и был успешно создан; false, если именованный файл уже существует.
15public boolean delete()
Удаляет файл или каталог, по указанному абстрактному имени пути. Если это имя пути обозначает каталог, каталог должен быть пустым, чтобы его можно было удалить. Возвращает true тогда и только тогда, когда файл или каталог успешно удалены; в противном случае false.
16public void deleteOnExit()
Просит, чтобы файл или каталог, обозначенные данным абстрактным пустым именем, были удалены при завершении работы виртуальной машины.
17public String[] list()
Возвращает массив строк, называющий файлы и каталоги в каталоге, обозначаемом этим абстрактным именем пути.
18public String[] list(FilenameFilter filter)
Возвращает массив строк, называющий файлы и каталоги в каталоге, обозначаемом этим абстрактным пустым именем пути, которое удовлетворяет указанному фильтру.
19public File[] listFiles()
Возвращает массив абстрактных путей, обозначающих файлы в каталоге, обозначаемом этим абстрактным именем пути.
20public File[] listFiles(FileFilter filter)
Возвращает массив абстрактных путей, обозначающих файлы и каталоги в каталоге, обозначаемом этим абстрактным пустым именем пути, которое удовлетворяет указанному фильтру.
21public boolean mkdir()
Создает каталог с именем этого абстрактного пути. Возвращает true тогда и только тогда, когда каталог был создан, в противном случае false.
22public boolean mkdirs()
Создает каталог с именем этого абстрактного пути, включая любые необходимые, но несуществующие родительские каталоги. Возвращает true тогда и только тогда, когда каталог был создан вместе со всеми необходимыми родительскими каталогами, в противном случае false.
23public boolean renameTo(File dest)
Переименовывает файл, обозначенный этим абстрактным пустым именем. Возвращает true тогда и только тогда, когда переименование выполнено успешно, в противном случае false.
24public boolean setLastModified(long time)
Устанавливает последней модификацией время файла или каталога с именем этого абстрактного пути. Возвращает true тогда и только тогда, когда операция выполнена успешно, в противном случае false.
25public boolean setReadOnly()
Помечает файл или каталог с именем этого абстрактного пути, чтобы разрешить только операции чтения. Возвращает true тогда и только тогда, когда операция выполнена успешно, в противном случае false.
26public static File createTempFile(String prefix, String suffix, File directory) throws IOException
Создает новый пустой файл в указанном каталоге, используя строковые prefix и suffix, чтобы сгенерировать его имя. Возвращает абстрактный путь, обозначающий вновь созданный пустой файл.
27public static File createTempFile(String prefix, String suffix) throws IOException
Создает пустой файл в каталоге временных файлов по умолчанию, используя данные prefix и suffix, чтобы сгенерировать его имя. Вызов этого метода эквивалентен вызову createTempFile(prefix, suffix, null). Возвращает абстрактное имя пути, обозначающее вновь созданный пустой файл.
28public int compareTo(File pathname)
Сравнивает лексикографически два абстрактных пути. Возвращает ноль, если аргумент равен этому абстрактному пути, значение меньше нуля, если это абстрактное имя пути лексикографически меньше аргумента или значение больше нуля, если этот абстрактный путь лексикографически больше аргумента.
29public int compareTo(Object o)
Сравнивает этот абстрактный путь с другим объектом. Возвращает ноль, если аргумент равен этому абстрактному пути, значение меньше нуля, если это абстрактное имя пути лексикографически меньше аргумента или значение больше нуля, если этот абстрактный путь лексикографически больше аргумента.
30public boolean equals(Object obj)
Проверяет этот абстрактный путь на равенство с данным объектом. Возвращает true тогда и только тогда, когда аргумент не является нулевым и представляет собой абстрактный путь, который обозначает тот же файл или каталог, что и этот абстрактный путь.
31public String toString()
Возвращает строковый путь этого абстрактного пути. Это просто строка, возвращаемая методом getPath().

Пример

Ниже приведен пример демонстрации объекта File:

Учтите, что существует исполняемый файл First.txt, а другой файл Second.txt не исполняется в текущем каталоге. Скомпилируем и запустим указанную выше программу. Это приведет к следующему результату:

package test;
import java.io.File;

public class Test {
   
   public static void main(String[] args) {
      File f = null;
      String[] strs = {"First.txt", "Second.txt"};
      try {
         // для каждой строки в массиве строк
         for(String s:strs ) {
            // создание нового файла
            f = new File(s);
            
            // true, если файл является исполняемым
            boolean bool = f.canExecute();
            
            // нахождение абсолютного пути
            String a = f.getAbsolutePath(); 
            
            // вывод абсолютного пути
            System.out.print(a);
            
            // вывод
            System.out.println(" исполняется: " + bool);
         } 
      } catch (Exception e) {
         // если любая ошибка ввода/вывода
         e.printStackTrace();
      }
   }
}

Получим следующий результат:

E:\Soft\NetBeans 8.2\Projects\test\test\First.txt исполняется: false
E:\Soft\NetBeans 8.2\Projects\test\test\Second.txt исполняется: false

Получим следующий результат, если существует исполняемый файл First.txt:

E:\Soft\NetBeans 8.2\Projects\test\test\First.txt исполняется: true
E:\Soft\NetBeans 8.2\Projects\test\test\Second.txt исполняется: false

Оглавление