读取文本文件时不输出,压缩文件时正常输出,问题在哪?
`fmt.Println("txt file")`
`fmt.Println("compressed file")`
这两句也可以正常打印出来。
```
package main
import (
"fmt"
"io"
"os"
"bufio"
"compress/gzip"
)
func main(){
fp, fpEr := os.Open(os.Args[1])
if fpEr != nil {
fmt.Println(fpEr.Error())
return
}
defer fp.Close()
var reader *bufio.Reader
fz, fzEr :=gzip.NewReader(fp)
if fzEr != nil {
//fmt.Println(fzEr.Error())
reader = bufio.NewReader(fp)
fmt.Println("txt file")
}else{
reader = bufio.NewReader(fz)
fmt.Println("compressed file")
}
for {
line, lineEr := reader.ReadString('\n')
if lineEr == io.EOF {
return
}
fmt.Printf("%s", line)
}
}
```
找到如何打印当前偏移量的方法了。题主可以在
```
gzip.NewReader(fp)
```
前后,分别执行一次
```
pos1, _ := fp.Seek(0, io.SeekCurrent)
fmt.Printf("pos1:%v\n", pos1)
```
即可明确的得知,确实发生了 fp 的文件偏移量变化
#4
更多评论