例外:ZLIB输入流意外结束

 手机用户2602921303_852 发布于 2023-01-06 17:18

有什么问题GZIPInputStreamGZIPOutputStream.请阅读以下代码(或运行它,看看会发生什么):

def main(a: Array[String]) {
    val name = "test.dat"
    new GZIPOutputStream(new FileOutputStream(name)).write(10)
    println(new GZIPInputStream(new FileInputStream(name)).read())
}

它创建一个文件test.dat,10通过GZIP 写入单字节格式,并以相同的格式读取同一文件中的字节.

这就是我运行它的原因:

Exception in thread "main" java.io.EOFException: Unexpected end of ZLIB input stream
    at java.util.zip.InflaterInputStream.fill(Unknown Source)
    at java.util.zip.InflaterInputStream.read(Unknown Source)
    at java.util.zip.GZIPInputStream.read(Unknown Source)
    at java.util.zip.InflaterInputStream.read(Unknown Source)
    at nbt.Test$.main(Test.scala:13)
    at nbt.Test.main(Test.scala)

由于某种原因,阅读线似乎走错了路.

我搜索了该错误,Unexpected end of ZLIB input stream并发现了一些针对Oracle的错误报告,这些报告是在2007-2010左右发布的.所以我猜这个bug仍然存在,但我不确定我的代码是否正确,所以让我在这里发帖并听取你的意见.谢谢!

1 个回答
  • 你要叫close()GZIPOutputStream你试图读取它之前.只有在文件实际关闭时才会写入文件的最后字节.(这与输出堆栈中的任何显式缓冲flush()无关.当你告诉它关闭时,流只知道压缩和写入最后的字节.一个可能无济于事......虽然调用finish()而不close()应该工作.看看的javadoc.)

    这是正确的代码(用Java);

    package test;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.zip.GZIPInputStream;
    import java.util.zip.GZIPOutputStream;
    
    public class GZipTest {
    
        public static void main(String[] args) throws FileNotFoundException, IOException {
            String name = "/tmp/test";
            GZIPOutputStream gz = new GZIPOutputStream(new FileOutputStream(name));
            gz.write(10);
            gz.close();
            System.out.println(new GZIPInputStream(new FileInputStream(name)).read());
        }
    }
    

    (我没有正确实施资源管理.不要将此视为"好代码"的一个例子.)

    2023-01-06 17:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有