dongtiao2066 2018-06-29 16:13 采纳率: 0%
浏览 2281

出错:Golang意外的EOF

这是我的代码,我是Go新手。我试着在谷歌上搜索这个问题,但我不能完全理解它,我认为这与read()方法有关。

package main

import (
    ...
)

type compressor struct {
    content []byte
}

func (r *compressor) compress() []byte {
    ...
}

func (r *compressor) decompress() []byte {
    var buffer bytes.Buffer
    dc := flate.NewReader(&buffer)
    _, err := dc.Read(r.content)
    if err != nil {
        if err != io.EOF {
            log.Fatal(err)
        }
    }

    return buffer.Bytes()
}

func main() {
    fileName := os.Args[1]
    fmt.Println(os.Args)
    contents, err := ioutil.ReadFile(fileName)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Print("Uncompressed data: ")
    fmt.Println(len(contents))

    comp := compressor{contents}
    buffer := comp.decompress()
    fmt.Print("Uncompressed data: ")
    fmt.Println(len(comp.decompress()))

    err = ioutil.WriteFile(fileName+".decjc", buffer, 0644)
    if err != nil {
        log.Fatal(err)
    }
}

输出如下:

dylan@skynet:~/Documents/EXP/jc$ ./jc data.txt.jc

[./jc data.txt.jc]

Uncompressed data: 2364480

2018/06/29 21:41:35 unexpected EOF

  • 写回答

2条回答 默认 最新

  • dongzou1964 2018-06-29 21:10
    关注

    You got the in and outputs mixed up.

    flate.NewReader takes the compressed input as a io.Reader and it returns a io.ReadCloser that can be used to get the uncompressed output:

    func (r *compressor) decompress() []byte {
        dc := flate.NewReader(bytes.NewReader(r.content))
        defer dc.Close()
        rb, err := ioutil.ReadAll(dc)
        if err != nil {
            if err != io.EOF {
                log.Fatalf("Err %v
     read %v", err, rb)
            }
        }
        return rb
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 CSS实现渐隐虚线边框
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题