前言:为了实现像ChatGPT一样的效果:文字进行逐个显示,后端返回的时候需要以流的形式。
目录
一、字符串流
二、文件流文章来源:https://www.toymoban.com/news/detail-507304.html
一、字符串流
@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();
}
}
文章来源地址https://www.toymoban.com/news/detail-507304.html
二、文件流
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();
}
到了这里,关于Java以流的形式返回前端的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!