Ссылочный текстовый файл из кода в Intellij

#scala #intellij-idea

#scala #intellij-idea

Вопрос:

У меня есть очень простой пример в Scala для чтения текстового файла. Пример выполнен в IntelliJ. Однако, когда я пытаюсь использовать io.Исходный файл.fromFile(«….resourcesexample.txt «), я получаю исключение FileNotFoundException. Код работает, когда я ввожу абсолютный путь.

Кто-нибудь может сказать мне, как использовать относительные пути для указания файла в Intellij project?

структура каталогов:

введите описание изображения здесь

Ответ №1:

Пути указаны относительно текущего / рабочего каталога, то есть каталога, из которого выполняется java команда.

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

Итак, перейдите в Run — Редактировать конфигурации …, затем найдите свою конфигурацию запуска, отредактируйте ее и посмотрите, что содержит поле «Рабочий каталог». По умолчанию рабочим каталогом является корневой каталог проекта.

Обратите внимание, что, если правила экранирования строк в Scala и Java не отличаются, путь должен быть разделен косыми чертами:

 "../../resources/example.txt"
  

, или обратная косая черта должна быть экранирована:

 "..\..\resources\example.txt"
  

Также не то, что если ваша цель — объединить текстовый файл внутри jar вашего приложения, вам не следует использовать file IO для его чтения, но используйте ClassLoader.getResourceAsStream() метод.

Комментарии:

1. Правила экранирования строк Scala для строк, заключенных в двойные кавычки, идентичны правилам Java. В качестве альтернативы можно было бы использовать строку в тройных двойных кавычках, т.е. """....resourcesexample.txt""" .