紧急提问:java输出流,每次只想输出一部分字节流如何做

cainiao2029 2009-08-13 02:57:13
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException
{
----略-------
arg1.setContentType("application/pdf");
arg1.setHeader("Content-disposition","inline; filename=foobar.pdf" );
ByteArrayOutputStream baos =Base64.getByteArrayOutputStream(startCode4,endCode4,enrouteCode);
arg1.setContentLength(baos.size());
ServletOutputStream sos=arg1.getOutputStream();
sos.write(baos.toByteArray(),0,baos.size());
sos.flush();
baos.close();
sos.close();
}
这里首先获得一个字节流baos ,然后我用sos把它输出到页面中去,现在的问题是,baos比较大,用sos一次性输出用户等的时间太长,我现在想能不能每次我只输出1000个字节,但是不知道该如何修改代码,望高人指点,谢谢
...全文
146 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovecj6185 2009-08-13
  • 打赏
  • 举报
回复
举个例子吧

import java.io.*;
public class TestIO {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

//test1
try {
FileInputStream is = new FileInputStream("a.txt");
FileOutputStream os = new FileOutputStream("b.txt");
byte[] read = new byte[1000];
while(is.read(read)!=-1){
os.write(read, 0, read.length);
}
os.flush();
os.close();
is.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
pupppet 2009-08-13
  • 打赏
  • 举报
回复
1楼已经给你说了。。。再不行就看API吧。。。
MinThinking 2009-08-13
  • 打赏
  • 举报
回复
write(byte[] buf,int offset,int len)
cainiao2029 2009-08-13
  • 打赏
  • 举报
回复
能详细些吗?谢谢
sky663 2009-08-13
  • 打赏
  • 举报
回复
當然可以,取出1000字節,放出sos中,執行sos.flush();就做了一次輸出,再取1000字節,放入sos中,再執行sos.flush(),就又輸出了一次。
YY_MM_DD 2009-08-13
  • 打赏
  • 举报
回复

--不就是设置一个起始,和结束吗?
sos.write(baos.toByteArray(),start,end);

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧