try {
//下载
InputStream inputStream = new BufferedInputStream(new FileInputStream(tbFileInfo.getsFilepath()));
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
inputStream.close();
//清空response
response.reset();
//二进制
response.setContentType("application/octet-stream;charset=UTF-8");
String fileName = new String(tbFileInfo.getsFilename().getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
//设置名称
response.setHeader("content-disposition","attachement;filename="+fileName);
//写入
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(bytes);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
logger.error("文件下载异常",e);
throw new ServiceException("文件下载异常", e);
}
改写成一下
try (InputStream inputStream =Files.newInputStream(Paths.get(tbFileInfo.getsFilepath()))){
//下载
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
//清空response
response.reset();
//二进制
response.setContentType("application/octet-stream;charset=UTF-8");
String fileName = new String(tbFileInfo.getsFilename().getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
//设置名称
response.setHeader("content-disposition","attachement;filename="+fileName);
//写入
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(bytes);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
logger.error("文件下载异常",e);
throw new ServiceException("文件下载异常", e);
}
我们进入到InputStream类中,发现该类实现了Closeable接口,该接口中用待实现的方法
而InputStream类中已经实现
这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上。。