Подтвердить что ты не робот

Ошибка: `error - java.lang.IllegalArgumentException: URI не является иерархическим при получении файла из пути к классам

У меня есть файл, содержащийся в каталоге в пути к классам. Это выглядит как pl/shenlon/io/gui/appData/file.txt. Теперь, когда я пытаюсь преобразовать его в файл и читать с помощью этого кода:

File cityNamesFile = new File(ClassLoader.getSystemResource("pl/shenlon/io/gui/appData/list.txt").toURI());
Scanner cns = new Scanner(cityNamesFile);

Я получаю следующее: -

error - java.lang.IllegalArgumentException: URI is not hierarchical.

Как я могу исправить эту проблему?

4b9b3361

Ответ 1

Если ваш вызывающий класс сам находится в том же пакете, что и текстовый файл, просто используйте:

InputStream is = getClass().getResourceAsStream("list.txt");
Scanner cns = new Scanner(is);

Ответ 2

Заменить

File cityNamesFile = new File(ClassLoader.getSystemResource("pl/shenlon/io/gui/appData/list.txt").toURI());

с

File cityNamesFile = new File(Thread.currentThread().getContextClassLoader().getResource("pl/shenlon/io/gui/appData/list.txt").getFile());