Ответ 1
Если ваш вызывающий класс сам находится в том же пакете, что и текстовый файл, просто используйте:
InputStream is = getClass().getResourceAsStream("list.txt");
Scanner cns = new Scanner(is);
У меня есть файл, содержащийся в каталоге в пути к классам. Это выглядит как 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.
Как я могу исправить эту проблему?
Если ваш вызывающий класс сам находится в том же пакете, что и текстовый файл, просто используйте:
InputStream is = getClass().getResourceAsStream("list.txt");
Scanner cns = new Scanner(is);
Заменить
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());