读取JAR包中resource中的文件,resource中的文件乱码解决方法

一般读取文件都喜欢使用相对路径或者绝对路径读取文件,例如:

String filePath = new File(ResourceUtils.getURL("classpath:").getPath()).getPath();
log.info("文件读取路径 ->" + filePath);
//获取项目工程当前所在路径
//在Linux环境下存在file:开头,会报错
filePath = filePath.replace("file:", "").replace("!", "");
fileInputStream = new FileInputStream(filePath + "/module/" + fileName);

这种方法在本地执行没有问题,但是在代码打成jar包后是会报错的, 这主要是因为jar包是一个单独的文件而非文件夹,绝对不可能通过"file:/e:/…/ResourceJar.jar/resource /res.txt"这种形式的文件URL来定位res.txt。但可以通过Class类的getResourceAsStream()方法来获取

InputStream fileInputStream = this.getClass().getResourceAsStream("/module/" + fileName);

这样就可以正常读取到文件了。

maven打包导致resource中的文件乱码解决方法:

<!--            防止excel等文件乱码-->
<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-resources-plugin</artifactId>
     <version>${maven.resources.plugin.version}</version>
     <configuration>
         <encoding>UTF-8</encoding>
         <nonFilteredFileExtensions>
             <nonFilteredFileExtension>xls</nonFilteredFileExtension>
             <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
         </nonFilteredFileExtensions>
     </configuration>
 </plugin>
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值