Golang 在EOF判断上的坑 Posted on 2018-01-29 In Golang 读取文件流等操作中,通常通过 if err == io.EOF 判断文件流是否终止,此时退出循环。通常文件中err == io.EOF时,此时读取的字节一般为0,但是在gzip.Reader中,读取到文件结尾时,err != nil且 read != 0,what…和python、java的习惯有点不一样啊,看样子在处理时不能遗漏最后一个读取出来的字节,所以还是把doSomeThing放到Read结束之后立即操作吧。 123456789101112131415161718192021for { buf := make([]byte, 1024) read, err := reader.Read(buf) if err == io.EOF { break } if err != nil { return nil, err } doSomeThing(buf[:read])} Post author: 木陽 Post link: http://atomicer.cn/2018/01/29/Golang_在EOF判断上的坑/ Copyright Notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.