gZIPInputStream解压缩的问题

jdgdf566 2013-11-14 06:59:22

public static void main(String[] args) throws Exception {
DataOutputStream dos = new DataOutputStream(new FileOutputStream("unzip.qq.html"));
int i = 0;
int len = 1024 * 1024;
byte[] buf = new byte[len];
GZIPInputStream gZIPInputStream = new GZIPInputStream(new FileInputStream("qq.com.html.gzip"));
for (i = 0; i < 1000 && (len = gZIPInputStream.read(buf)) != -1; i++) {
dos.write(buf, 0, len);
}

System.out.println("循环次数:" + i);

}

查看文件,解压缩是成功、完整的。
问题是:
输出的文件unzip.qq.html的大小只有500k字节左右,
却输出
循环次数:188
我的缓冲是int len = 1024 * 1024;啊,1M啊。
...全文
472 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdgdf566 2013-11-25
  • 打赏
  • 举报
回复
查出来了,gZIPInputStream.read(buf)不一定读取buf.length长度。
jdgdf566 2013-11-23
  • 打赏
  • 举报
回复
引用 4 楼 u011935764 的回复:
dos.flush();
引用 5 楼 kolor_cn 的回复:
要flush的
加上也没用,还是那样188次。 与dos.flush();没有关系。 输出len的值,发现每次读取的字节数不一样。
kolor_cn 2013-11-23
  • 打赏
  • 举报
回复
要flush的
时光清浅 2013-11-23
  • 打赏
  • 举报
回复
dos.flush();
jdgdf566 2013-11-22
  • 打赏
  • 举报
回复
jdgdf566 2013-11-18
  • 打赏
  • 举报
回复
jdgdf566 2013-11-15
  • 打赏
  • 举报
回复

62,616

社区成员

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

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