Работа с файлами в Java: методы и конструкторы
К классу File в java.io обращаются для выполнения различных манипуляций над файлами и каталогами, например:
- получения новой информации;
- исключения из списка;
- смены названия;
- поиска и идентификация общих атрибутов;
- детализации содержимого в них.
Название файлов и каталогов могут иметь разные форматы на разных платформах, использование строки (String) недостаточно для того, чтобы их назвать или переименовать, именно для этого применяют класс File.
Как создаются объекты File в Java? Путем использования конструкторов. Все зависит от того, чем должен являться объект — файлом (file) или каталогом (dir):
Файл <название> = new File (<каталог>);
File superf= new File ("D://ProgramDir","Programming.txt");
Внимание! Имя объекта является абстрактным и абсолютным по своей природе. То есть абстрактный путь экземпляра класса File нельзя изменить.
Конструкторы
В обозначении имен файлов и каталогов помогают различные конструкторы:
- File (File parent, String child) — получим файл из соединения родительского пути и строки дочернего пути:
File parentf1 = new File ("c:/MyProgram");File cldf2 = new File (parentf1, "f2.txt");
System.out.println (cldf2);
Результат:
c:\MyProgram\f2.txt
- File (String pathname) — увидим файл, представляющий указанное имя пути:
File bestf3 = new File ("c:", "MyProgram", "f2.txt");
System.out.println (bestf3);
Результат:
c:\MyProgram\f2.txt
- File (String parent, String child) –получим экземпляр, образованный из строк родительского и дочернего путей:
File Myfile = new File ("c:/", "f2.txt");System.out.println (Myfile);
Результат:
c:\MyProgram\f2.txt
- File (URI uri) – конверт из URI файла в абстрактный путь:
String fpath = ("c:\\MyProgram\\superf2.png");File myf= new File (fpath);URI uri = myf.toURI ();System.out.println (uri.to String());
Результат:
Myf:/c:/ MyProgram/superf2.png
Методы класса File
Методы могут помочь узнать данные о файлах: размер или дату последних изменений, к какому типу относится. Также с их помощью можно удалить элемент.
Вот распространенные методы:
- boolean createNewFile(): создает новый пустой файл. Если файл не будет создан, тогда выводится false.
- boolean delete(): удаляет каталог или файл.
- boolean exists(): проверяет, существует ли указанный файл или каталог.
- boolean equals(Object obj): проверяет, совпадает ли имя пути с заданным объектом.
- String getName(): выводит название файла или каталога.
- String getParent(): выводит название каталога-родителя.
- boolean isDirectory(): передает абстрактный путь, true — если путь указывает на каталог.
- boolean isFile(): выводит true, если путь указывает на файл.
- boolean isHidden(): проверяет, скрыт файл или нет (если да — выводит true, если нет — false).
- String[] list(): генерация списка строк со всеми именами файлов в каталоге.
- File[] listFiles(): формирование массива и его возврат.
- long length(): предоставляет данные о длине файла.
- URI toURI(): будет создан URI файла.
- boolean setReadable (boolean readable, boolean ownerOnly): устанавливает, кто может читать файл. К примеру, только владелец (owner).
- boolean setReadOnly(): указывает на файл или каталог, для которых возможно только чтение.
Работа с каталогами
В каталоге могут содержаться файлы и даже другие каталоги. Когда нам необходимо узнать, с чем имеем дело, обращаемся к методу isDirectory(). Если это каталог — увидим true. Затем применяем list() для получения детального перечня того, что внутри:
File Mydir = new File ("D://Program");
// проверяем каталог или нет
if (Mydir.isDirectory()) {
// если да, что в нем
For (File item : Mydir.listFiles()){
If (item.isDirectory()){
System.out.println(item.getName() + " \ directory");
}
else{
System.out.println(item.getName() + "\ file");
}
Давайте попробуем придумать новое название и убрать каталог:
File dir = new File ("C://MyDir//TestDir");
boolean created = dir.mkdir();
if(created)
System.out.println("Sucсess");
// меняем название
File TestDir = new File ("C://MyDir//SuperTestDir");
dir.renameTo(TestDir);
// убираем каталог
boolean deleted = TestDir.delete();
if(deleted)
System.out.println("Removed");
Работа с файлами
Применяем тот же принцип навигации, что и с каталогами:
File Myf1 = new File("Programming.txt");
File Myf2 = new File("Codding.txt");
// проверяем наличие Myf1 и меняем его название
if (Myf1.exists()) {
if (My1.renameTo(Myf2)) {
System.out.println("Sucсess ");
// все ок
}
else
System.out.println("Not done");
// имя не изменилось
}
else
System.out.println("Not exist");
}
В Java можно легко управлять файлами, добавлять их, переименовывать и так далее.

Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: