在java中使用Resoure.getFile()方法時,在本地可以正確找到讶凉,但是當(dāng)代碼打成jar包之后,執(zhí)行此方法會報錯
***.file cannot be resolved to absolute file path because it does not reside in the file system
原因在于打成jar包之后Resource.getFile()只會獲取jar包不會讀取jar包中的文件卧蜓】辗保可以改為:
InputStream inputStream = resource.getInputStream();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "application/octet-stream;charset=UTF-8");
response.setContentType("application/octet-stream;charset=UTF-8");
try (OutputStream out = response.getOutputStream();
BufferedInputStream bis = new BufferedInputStream(inputStream)) {
byte[] buff = new byte[1024];
int i = bis.read(buff);
while (i != -1) {
out.write(buff, 0, buff.length);
out.flush();
i = bis.read(buff);
}
}