首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用GZIPInputStream修复EOF读取错误

如何使用GZIPInputStream修复EOF读取错误
EN

Stack Overflow用户
提问于 2020-05-30 03:47:00
回答 1查看 416关注 0票数 1

我正在尝试读取gzip文件的内容,并从它创建一个文件。我遇到了一个我看不到的问题。任何建议的想法都是值得感谢的。谢谢。

代码语言:javascript
复制
private static String unzip(String gzipFile, String location){

        try {
            FileInputStream in = new FileInputStream(gzipFile);
            FileOutputStream out = new FileOutputStream(location);
            GZIPInputStream gzip = new GZIPInputStream(in);

            byte[] b = new byte[1024];
            int len;
            while((len = gzip.read(b)) != -1){
                out.write(buffer, 0, len);
            }

            out.close();
            in.close();
            gzip.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }


java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:240)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:116)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
EN

回答 1

Stack Overflow用户

发布于 2020-05-30 04:00:42

通过使用Resource Blocks来确保您的文件被正确关闭,您将使自己的工作变得更加轻松。例如:

代码语言:javascript
复制
private static String unzip(String gzipFile, String location){

        try (
            FileInputStream in = new FileInputStream(gzipFile);
            GZIPInputStream gzip = new GZIPInputStream(in);
            FileOutputStream out = new FileOutputStream(location))
        {

            byte[] b = new byte[4096];
            int len;
            while((len = gzip.read(b)) >= 0){
                out.write(b, 0, len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

您还应该确保您有一个有效的.zip文件(当然!)并且您的输入和输出文件名不同。

"buffer“是怎么回事?我猜想(和GPI一样)你的意思可能是"b"?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62093617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档