package main import ( "os" "fmt" "bufio" "io" ) func ReadFileLine(path string) { //打开文件 f, err := os.Open(path) if err != nil { fmt.Println("open file err = ", err) return } defer f.Close() //新建一个缓冲区,把内容先放在缓冲区 r := bufio.NewReader(f) //遇到 则结束读取,但是 也被读取了 for { buf, err := r.ReadBytes(' ')//通过源码得到的返回值的个数和类型 if err != nil { if err == io.EOF { break; } fmt.Println(" err = ", err) } fmt.Printf(" buf = #%s# ", string(buf)) } } func main() { path := "./demo.txt" ReadFileLine(path) }
执行结果
buf = #i = 0 # buf = #i = 1 # buf = #i = 2 # buf = #i = 3 # buf = #i = 4 # buf = #i = 5 # buf = #i = 6 # buf = #i = 7 # buf = #i = 8 # buf = #i = 9 # buf = #i = 10 #
可以看到这里i=0后面的 也被读取了