Linux不能读取目录,关于Linux上面无法读取资源目录下文件的问题
一開始我的代碼是這樣子的,讀取本地子路徑下的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;
}
總結
以上是生活随笔為你收集整理的Linux不能读取目录,关于Linux上面无法读取资源目录下文件的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一直显示数据格式错误_Excel数据分析
- 下一篇: 在html中怎么写加起来的,css可以在