为什么通过getResource在jar中打包文件的文件输入流不起作用?

时间:2016-06-27 04:45:02

标签: java

.thirdwidth

此方法会导致错误,例如" / ... / ... / ... jar!/example.txt(没有这样的文件或目录)"

InputStream inputStream = new FileInputStream(new File(this.getClass().getResource("/example.txt").getFile()))

此方法将正确运行。

那么,这两种方法的区别是什么?为什么第一种方法不起作用?

1 个答案:

答案 0 :(得分:0)

getResources将返回您的应用程序资源。这些本质上是您的应用程序在编译时存在的资源,并且捆绑到您的应用程序中。这些资源是只读的。为了修改它们,你必须将它们复制到其他地方(最好是你的应用程序私有文件目录)。

getResourceAsStream将为您提供任何给定资源的输入流。这是您的应用程序捆绑资源(如上所述)或可以动态创建。请记住,为了使用getResourceAsStream,您必须能够访问给定的资源。