问题描述
Linux找不到固定目录下的文件,本地IDEA可以
public void downloadTemplate(HttpServletResponse response) {
URL resource = DataServiceImpl.class.getClassLoader().getResource("fl/template/templateData.csv");
FileInputStream fis = null;
try {
fis = new FileInputStream(resource.getFile());
OutputStream os = response.getOutputStream();
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = fis.read(buffer, 0, 4096)) != -1) {
os.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
e.printStackTrace();
}
}
原因分析:
提示:DataServiceImpl.class.getClassLoader().getResource()有坑
解决方案01:
public void downloadTemplate(HttpServletResponse response) {
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("fl/template/templateData.csv");
try {
OutputStream os = response.getOutputStream();
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = is.read(buffer, 0, 4096)) != -1) {
os.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
e.printStackTrace();
}
}