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

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

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

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024