GO语言的IO方法实例小结

2019-11-10 10:32:26王冬梅

}

(5)func (s *SectionReader) Size() int64返回的是可以读取的字节数,这个不受偏移指针的影响,也不受当前读取的影响,我们具体看下代码

import (
 "fmt"
 "io"
 "os"
)

func main() {
 f, _ := os.Open("test.txt")
 defer f.Close()
 sr := io.NewSectionReader(f, 2, 5)
 fmt.Println(sr.Size()) //5
 p := make([]byte, 10)
 sr.Seek(1, 0)    //相当于起始的地址偏移1
 n, err := sr.Read(p)
 if err != nil {
  fmt.Println(err)
 }
 fmt.Println(string(p[:n])) //lo w
 fmt.Println(sr.Size())     //5
}