Когда файл находится внутри jar, вы не можете использовать класс File
для его представления, так как это jar:
URI. Вместо этого сам класс URL уже дает вам openStream()
возможность читать содержимое.
Или вы можете сократить это, используя getResourceAsStream()
вместо getResource()
.
Чтобы получить BufferedReader (который проще в использовании, так как он имеет метод readLine()
), используйте обычную потоковую упаковку:
InputStream configStream = getClass().getResourceAsStream("wof.txt");
BufferedReader configReader = new BufferedReader(new InputStreamReader(configStream, "UTF-8"));
Вместо "UTF-8" используйте кодировку, фактически используемую файлом (т. Е. Которую вы использовали в редакторе).
Еще один момент: даже если у вас есть только file:
URI, вы не должны делать URL для преобразования файлов самостоятельно, вместо этого используйте new File(url.toURI())
. Это работает и для других проблемных персонажей.