0


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 开发语言

本文转载自: https://blog.csdn.net/wenxingchen/article/details/130081401
版权归原作者 苍穹之跃 所有, 如有侵权,请联系我们删除。

“Java以流的形式返回前端”的评论:

还没有评论