Java读取Jar包里的文件

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java读取Jar包里的文件脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Java的IO操作,一年也用不到一次,且每次用到都会有一堆问题。

就Java路径,用一次查一次。因为用的少,用完就忘。

这次遇到一个奇葩问题。本来是一个非常简单的Excel操作,读取,填充数据。本地跑没有一点问题,一打成jar包,发到服务器上,就在下面的语句报错:

this.sourceFileName = this.getClass().getResource("Book1.xls").toURI()                     .getPath(); 

提示 找不到文件。
那么我们看看什么是URI:

Web上可用的每种资 -HTML文档、图像、视频片段、程序等 - 由一个通用资源标识符(Uniform Resource
Identifier, 简称"URI")进行定位。

且根据规范,URI是这种形式地:协议名称://域名.根域名/目录/文件名.后缀
http://www.baidu.com/xxoo.html
那么我么利用上面的java语句获得的是什么形式呢?
file://d:xx/xx/aa/bb.txt.
注意到没,利用这种形式,可以打开如上形式的某个目录文件下的文件。
而对于jar包里的文件,则已经是文件的内部了,就已经无能为力了。
也就是如果用上面方法,可以打开到.../xx/xx.jar,而没法到.../xx/xx.jar/xx.txt了。

那对于jar里的文件是不是就没法打开了?肯定不是:

InputStream inputStream = this.getClass()getResourceAsStream("Book1.xls")); 

就这么简单,jar包里的文件,我们是没法以file形式读取的,而只能以InputStram的形式读取。

推荐几篇博文吧:
http://mushiqianmeng.blog.51cto.com/3970029/833649
http://www.coderli.com/jar-classloader
http://blog.csdn.net/b_h_l/article/details/7767829

脚本宝典总结

以上是脚本宝典为你收集整理的Java读取Jar包里的文件全部内容,希望文章能够帮你解决Java读取Jar包里的文件所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。