Springboot如何返回一个流对象用httpclient接收 流

小五
  • 28

1,服务端的框架用的是Springboot 现在需要把服务端的文件流传递给客户端,并且在客户端接收(java 文件 HttpClient 没有浏览器)
2,我现在的方法是把服务端的文件转成base64 字符传给客户端 但是这样可能会造成内存溢出
3,我想在服务端返回一个输入流,然后在 把这个流读出来 在客户端写文件 这个该怎么实现呢 我试着直接返回 FileInputStream 但是没用 而且服务端会报错

回复
阅读 17.2k
1 个回答
mokeyWie
  • 2.4k
✓ 已被采纳

纯手打,以下:

//服务器端
try(
    OutputStream output = response.getOutputStream();
    FileInputStream input = new FileInputStream("文件");
){
    byte[] bts = new byte[8192];
    int len = -1;
    while((len=input.read(bts))!=-1){
        output.write(bts,0,len);
    }
}
//客户端
HttpResponse httpResponse = httpCient.execute(httpGet);
//拿到服务器返回的文件字节流
InputStream input = httpResponse.getInputStream();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏