异常场景
在打成jar包的代码中使用了new FileInputStream("FilePath.txt")等与文件相关的代码,会造成空指针异常。
异常出现的原因
通过package打成的jar包,也就是通过压缩操作之后的文件路径与项目的原有层级结构是不一致的。
解决方法
在jar中操作或者读取文件,需要通过io流的方式来实现。
思路一:
可以通过创建临时文件来操作获取文件信息。代码如下:
//访问在resource目录下的文件hello.txt
import org.springfamework.core.io.ClassPathRsource;
import org.apache.commons.io.FileUtils
public class Test {
//此处为示例代码,具体异常和流的处理未体现
public void test01(){
ClassPathResource resource = new ClassPathResource("hello.txt");
//获取文件流
InputStream inputStream = resource.getInputStream();
//创建临时文件,并将流写入此文件
File tempFile = File.createTempFile("前缀","后缀.txt");
FileUtils.copyInputStreamToFile(inputStream,tempFile);
//操作此文件即可
System.out.println("临时文件路径" + tempFile.getPath());
}
}