java如何将文件返回二进制流给前端
时间: 2023-05-26 09:01:50 浏览: 1847
Java 可以使用 InputStream 和 OutputStream 将文件内容以二进制流的形式返回给前端。以下是一个简单的示例:
```
@RequestMapping(value = "/download", method = RequestMethod.GET)
public void download(HttpServletRequest request, HttpServletResponse response) {
String filePath = "path/to/file"; // 文件路径
try {
// 将文件读取到 InputStream 中
InputStream in = new FileInputStream(new File(filePath));
// 设置响应头信息
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; fileName=" + fileName);
response.setHeader("Content-Length", String.valueOf(new File(filePath).length()));
// 将 InputStream 中的内容写入到 OutputStream 中,实现文件下载
OutputStream os = response.getOutputStream();
byte[] b = new byte[1024];
int length;
while ((length = in.read(b)) > 0) {
os.write(b, 0, length);
}
os.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
```
在上述示例中,我们将文件读取到 InputStream 中,设置响应头信息,实现了以二进制流的形式将文件发送给前端。前端收到文件后,可以根据具体需求进行处理。
阅读全文