@[TOC](JAVA 获取Target中Resources(Jar包中classes)文件夹下的文件并以输入流的形式使用)
在一般的JavaWeb项目中,会有根据模板导出的功能,但是大多数方法在idea中可以说是随便跑,但是打成jar包部署到服务器上之后就发现会报一些莫名其妙的错误,比如找不到文件(java.io.FileNotFoundException)或者是直接空指针(NullPointerException)。
此图是idea项目中的文件结构截图
此图是target包中即jar包中文件结构截图
现在的目的是可以获取target包中(即jar包)的demo.docx文件并且转换为inputstream方便后续使用。
//使用的包
import java.io.*;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
//关键代码
InputStream in = null;
/**此处resourceLoader的实例化省略,因为调用方式也许不同,故而没有贴出
*可以在util中直接实例化,即ResourceLoader resourceLoader,但会标注静态方法之类的问题,所以我使用的
*不是这种方法,而是使用的@AutoWired注解或者@Resource注解
**/
Resource resource = resourceLoader.getResource("classpath:file"+ sepa +"demo.docx");
in = resource.getInputStream();