Java如何将base64转为流然后写入response传给前端
时间: 2024-04-12 08:30:47 浏览: 332
您可以使用Java的Base64类解码Base64字符串,然后将解码后的字节数组转换为输入流,最后将输入流写入到response的输出流中传给前端。
以下是一个示例代码:
```java
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Base64;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Base64ToStreamServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取Base64字符串
String base64String = "Your_Base64_String";
// 解码Base64字符串为字节数组
byte[] bytes = Base64.getDecoder().decode(base64String);
// 将字节数组转换为输入流
InputStream inputStream = new ByteArrayInputStream(bytes);
// 设置response的Content-Type为文件类型
response.setContentType("application/octet-stream");
// 设置response的头部信息,指定文件名
response.setHeader("Content-Disposition", "attachment; filename=\"file.txt\"");
// 将输入流写入到response的输出流中
int bytesRead;
byte[] buffer = new byte[4096];
while ((bytesRead = inputStream.read(buffer)) != -1) {
response.getOutputStream().write(buffer, 0, bytesRead);
}
inputStream.close();
}
}
```
在上述示例中,首先获取Base64字符串,然后使用Base64类进行解码,得到字节数组。接下来,将字节数组转换为输入流,并设置response的Content-Type为文件类型,以及设置Content-Disposition头部信息,指定文件名。最后,将输入流写入到response的输出流中,即可将文件流传给前端。
阅读全文