На этом шаге мы начнем говорить про класс Files
В данном шаге мы поговорим про класс Files. Назначение данного класса - упростить работу с файлами и директориями. Данный класс содержит только статические функции, которые чаще всего принимают путь до рассматриваемого объекта (файл или директория).
Начнем с изучения функций проверки существования файла или директории:
Приведем ниже пример программы, в которой используются рассмотренные выше функции.
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws IOException { String fileName = ""; /*Проверяем наличие файл tmp.txt в папке проекта*/ Path pathExist = Paths.get("tmp.txt"); fileName = pathExist.getFileName().toString(); if (Files.exists(pathExist)) { System.out.println("Файл " + fileName + " существует"); } else { System.out.println("Файл " + fileName + " не существует"); } /*Проверяем отсутствие файла exist.txt в папке проекта*/ Path pathNotExist = Paths.get("exist.txt"); fileName = pathNotExist.getFileName().toString(); if (Files.notExists(pathNotExist)) { System.out.println("Файл " + fileName + " не существует"); } else { System.out.println("Файл " + fileName + " существует"); } /*Проверяем указывают ли pathExist и sameFile на один и тот же файл*/ Path sameFile = Paths.get("../pr106_1/tmp.txt"); if (Files.isSameFile(pathExist, sameFile)) { System.out.println("sameFile и pathExist указывают на один и тот же файл"); } else { System.out.println("sameFile и pathExist указывают на разные файлы"); } } }
Проект можно взять здесь
Рис. 1. Вывод программы
Обратим внимание на функцию isSameFile(). Данная функция также находится в классе Files и она проверяет на то, что два объекта типа Path указывают на один и тот же объект. Возвращает true если указывают на один объект, и false в противном случае. Если какой-то из аргументов этой функции будет указывать на несуществующий объект, то будет брошено исключение.
На следующем шаге мы продолжим изучение класса Files