Чтение файла из Classpath в Java

Научитесь читать файл из classpath в Java. Файл может находиться в корне расположения classpath или в любом относительном подкаталоге.

1. Размещение файлов в Classpath

Путь к классам приложения обычно содержит следующие расположения:

  • Корневой каталог проекта
  • /источник/главный/ресурсы
  • Любое расположение, файлы которого копируются в папку /classes после запуска сборки проекта.

Если файл находится внутри jar-файла, добавьте jar-файл в папку lib проекта или добавьте jar в classpath проекта.

Важно убедиться, что файл скопирован в конечный результат сборки проекта, т. е. файл jar/war или файл ear.

2. Чтение файлов из Classpath

Чтобы прочитать любой файл из classpath в классе, нам нужно получить ссылку на системный загрузчик классов для того класса, который пытается прочитать файл.

Системный загрузчик классов, очевидно, знает другие пути для приложения. Как только у нас есть ссылка на файл, мы можем использовать несколько способов для чтения файла.

 импорт java.io.Файл;импорт java.io.IOException;импорт java.net.URL;публичный класс ReadFileFromClasspath{public static void main(String[] args) выдает исключение{//Чтобы избежать ссылки на нестатический метод внутри статического метода main()Экземпляр ReadFileFromClasspath = новый ReadFileFromClasspath();Файл file = instance.getFile("demo.txt");//проверить путь к файлуSystem.out.println(file.getPath());//Читать файлСписок строк = Files.readAllLines(file.toPath());System.out.println(строки);}частный Файл getFile(String fileName) выдает IOException{Загрузчик классов Загрузчик классов = getClass().getClassLoader();URL-ресурс = classLoader.getResource(fileName);если(ресурс == null) {throw new IllegalArgumentException("файл не найден!");} еще {вернуть новый Файл(resource.getFile());}}}

3. Полные и относительные пути

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

  • fileName.txt – ищет файл в корневом пути папки сборки(например, /bin, /build, /WEB-INF/classes и т. д.).
  • com/howtodoinjava/io/demo.txt – представляет собой полный путь к файлу в каталоге сборки. В этом случае фактический файл находится в расположении <project_root>/bin/com/howtodoinjava/io/demo.txt.

Напишите мне ваши вопросы, связанные с чтением файла из classpath в Java.

Исходный код Скачать

Прокрутить вверх