我见过类似的问题,但不确定如何修复它。我已经尝试将其更改为输入流
var
上面,字符串只包含文件的名称(例如egample.txt)例如我正在尝试阅读egample.txt。
它从日食开始。请建议我如何解决它。我已经通过其他答案,但不确定。
答案 0 :(得分:0)
问题出在这里:
new File(metaInf.toURI())
如果查看File(URI)
构造函数的javadoc,它会说:
通过将给定的
file:
URI转换为抽象路径名来创建新的File实例。
问题是getResources()
枚举器提供的网址/ URI通常是 而不是file:
网址。如果您的代码是从JAR文件执行的,或者类路径上有其他JAR文件,那么您可以获得jar:
个URL。 File
构造函数无法处理它们...因为URL没有在主机文件系统中用路径名命名。
在某些情况下,这将是它的结束。但是,根据您的情况,您实际上不需要使用File
。相反,你应该能够这样:
BufferedReader br = new BufferedReader(
new InputStreamReader(metaInf.openStream()));
这在Eclipse中运行的原因是,在这种情况下,URL将是file:
个URL。可以从各自的Eclipse工作区目录直接访问资源。