Работа с файлами в 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 можно легко управлять файлами, добавлять их, переименовывать и так далее.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: