Рубріки: Теория

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

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023