我有一个包含在类路径中的目录中的文件。它看起来像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.
如何解决此问题?
答案 0 :(得分:7)
如果您的调用类本身与文本文件位于同一个包中,请使用:
InputStream is = getClass().getResourceAsStream("list.txt");
Scanner cns = new Scanner(is);
答案 1 :(得分:6)
替换
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());