错误:`error - java.lang.IllegalArgumentException:从类路径获取文件时,URI不是分层的

时间:2011-12-13 19:35:50

标签: java file classpath

我有一个包含在类路径中的目录中的文件。它看起来像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.

如何解决此问题?

2 个答案:

答案 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());