У меня есть файл config.ini, который мне нужно открыть, который находится довольно далеко назад в каталоге, поэтому я использовал File.getAbsolutePath (), чтобы установить базовый каталог, и конкатенировал оставшуюся часть пути.
Распечатывая путь, я получаю правильный путь, который могу вставить в проводник, но возвращаемый объект имеет значение null.
Итак, я начал с инициализации моих свойств и ClassLoader следующим образом:
Properties prop = new Properties();
ClassLoader classLoader = Test.class.getClassLoader();
Тогда я создаю путь.Я попытался избежать обратной косой черты (1) и прямой косой черты (2), оба возвращают ноль, но оба пути работают в проводнике файлов.
String absPath = new File("").getAbsolutePath();
absPath = absPath.concat("\\resources\\config\\config.ini"); // (1)
absPath = absPath.concat("/resources/config/config.ini"); // (2)
, затем я пытаюсь установить URL-адрес, чтобы открыть InputStream
URL res = Objects.requireNonNull(classLoader.getResource(absPath), "Unable to open config.ini");
InputStream is = new FileInputStream(res.getFile());
Однако следующее возвращает ноль.
classLoader.getResource(absPath)
Я ожидал, что это откроет файл должным образом, поскольку путь был правильным.Я использую Intelij, и я прочитал, что мне нужно было добавить файл ресурсов .ini в настройки> компилятор, что я и сделал, но это не решило мою проблему.
Спасибо!