Java以流的形式返回前端
作者:小教学发布时间:2023-09-27分类:程序开发学习浏览:250
导读:前言:为了实现像ChatGPT一样的效果:文字进行逐个显示,后端返回的时候需要以流的形式。目录一、字符串流二、文件流一、字符串流@PostMappi...
前言:为了实现像ChatGPT一样的效果:文字进行逐个显示,后端返回的时候需要以流的形式。
目录
一、字符串流
二、文件流
一、字符串流
@PostMapping("returnStream")
public void returnStream(HttpServletResponse response) throws IOException {
String message = "我是一段等待已流形式返回的文字";
// 以流的形式返回
ServletOutputStream out = null;
ByteArrayOutputStream baos = null;
try {
InputStream inStream = new ByteArrayInputStream(message.getBytes());
byte[] buffer = new byte[1024];
int len;
baos = new ByteArrayOutputStream();
while ((len = inStream.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
out = response.getOutputStream();
out.write(baos.toByteArray());
} catch (Exception e) {
e.printStackTrace();
} finally {
Objects.requireNonNull(baos).flush();
baos.close();
Objects.requireNonNull(out).flush();
out.close();
}
}

二、文件流
ServletOutputStream out = null;
ByteArrayOutputStream baos = null;
try {
File file=new File(filename);
InputStream inStream=new FileInputStream(file);
byte[] buffer = new byte[1024];
int len;
baos = new ByteArrayOutputStream();
while ((len = inStream.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
out = response.getOutputStream();
out.write(baos.toByteArray());
} catch (Exception e) {
e.printStackTrace();
} finally {
baos.flush();
baos.close();
out.flush();
out.close();
}
- 程序开发学习排行
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


