关于Linux上面无法读取资源目录下文件的问题
2024-09-01 02:18:08
一开始我的代码是这样子的,读取本地子路径下的json文件
代码运行的时候,在window是可以正常的
@Override
public String getBannerStr() {
String str = "";
try {
Resource resource = new ClassPathResource("json/abc.json");
File file = resource.getFile();
str = FileUtils.readFileToString(file, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException("Json信息查询出错");
}
return str;
}
但是实际上,工程是在Linux上面部署为jar包的
上面访问方式就出错了,这边一开始以为是获取资源文件的方式出问题了
后来试了几次,发现问题不是这样.
最后百度发现,在Linux中无法直接访问未经解压的文件,所以就会找不到文件。
所以只能使用流的方式对静态资源进行读取
下面是最后修改的代码
@Override
public String getBannerStr() {
String str = "";
try {
InputStream stream = getClass().getClassLoader().getResourceAsStream("json/abc.json");
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
String s = "";
try {
while ((s = br.readLine()) != null) {
str = str + s;
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException("Json信息查询出错");
}
return str;
}
最新文章
- Swift-代理
- 安装Java的IDE Eclipse时出现java.net.SocketException,出现错误Installer failed,show.log
- Discuz插件开发中的困惑
- XMLHTTP中setRequestHeader方法和参数
- android应用保活机制
- ReactJS入门学习一
- 彻底理解数字图像处理中的卷积-以Sobel算子为例
- ruby面向对象class
- CRegKey 注册表操作
- contentSize、contentInset和contentOffset
- updating the chroot
- Android IPC机制全解析<;二>;
- 多线程工具类:CountDownLatch、CyclicBarrier、Semaphore、LockSupport
- Docker多主机管理(八)--技术流ken
- shell实例利用crontab自动清除日志
- 第25月第7天 聚宽 svm
- BZOJ2861 : 双向边定向为单向边
- Erlang process structure -- refc binary
- Java编写画图板程序细节-保存已画图形
- 20155235 2016-2017-2 《Java程序设计》第4周学习总结