账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Java outputstream 有可以实现 append 的方式吗?
    61
    0

    大家好,我遇到了一个问题。

    更新下:其实 outputstream.write 就是附加操作,而不是重写。举例来说,第一次 write 并且 flush 以后,后面再 flush 也能推送到客户端,而且是追加。我的问题是,后面追加的操作没能写入到第一次生成的 excel 中。在资源管理器中看文件大小是 28kb,打开后再关闭就变成了 8kb。


    原问题:

    客户端想要下载 excel 文件,我从数据库里找到,然后用 apache poi 生成 byte array,设置好响应头,再传回客户端,客户端就可以下载。

    问题就是,有时候生成这个 excel 的耗时比较长,浏览器没收到响应,就 504 超时了。我想着能不能生成一部分,发送一部分,这样连接就建立起来了。一直到所有的内容都生成了,再关闭连接。

    我用的是 servlet.getOutputStream(),没找到类似 append 的方法,PrinterWriter 类有类似的方法,但是我试了一下,这样传回客户端的没法打开,应该是只能传二进制回去吧?我还试了一下socket,但是也需要用socket.getOutputStream(); 的方法获取输出流,这样又绕回来了。

    所以来这里请教下各位,有没有其它方式能实现我这需求,还是这个需求就是不可实现的?如果有更好的方法,还请赐教。谢谢!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部