示例:使用Java流返回前端数据的实现方法

示例:使用Java流返回前端数据的实现方法

前言

为了实现像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();
		}

到此这篇关于Java流形式返回前端的实现示例的文章就介绍到这了,更多相关Java流形式返回前端内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

若文章对您有帮助,帮忙点个赞!

0
0
发布时间 2023-05-22 09:30:37
0 条回复(回复会通过微信通知作者)
点击加载更多评论
登录 后再进行评论
(微信扫码即可登录,无需注册)