Java flush不管用_java – response.flushBuffer()不起作用

Java flush不管用_java – response.flushBuffer()不起作用我正在尝试实现一个用于流式传输大型对象的servlet:oracle.sql.BLOBblob=rs.getBLOB(‘obj’);InputStreamin=blob.getBinaryStream();intbufferSize=1024;byte[]buffer=newbyte[bufferSize];ServletOutputStreamout=respon…

我正在尝试实现一个用于流式传输大型对象的servlet:

oracle.sql.BLOB blob = rs.getBLOB(‘obj’);

InputStream in = blob.getBinaryStream();

int bufferSize = 1024;

byte[] buffer = new byte[bufferSize];

ServletOutputStream out = response.getOutputStream();

int counter=0

while((length=in.read(buffer)) != -1){

out.write(buffer,0,length);

counter++;

if(counter % 10 == 0){

counter=0;

response.flushBuffer();

}

此代码假设通过chunck将数据发送到客户端块.现在发生的事情是,当我传输大对象(100 MB)时,内存会上升,如果有多个并行下载/流,服务器有时会死掉.

为什么这个flushBuffer()没有向客户端发送数据?只有在响应关闭后,客户端才会弹出打开/保存文件.

今天的文章Java flush不管用_java – response.flushBuffer()不起作用分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/13325.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注