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) //遇到\n則結束讀取,但是\n也被讀取了 for { buf, err := r.ReadBytes('\n')//通過源碼得到的返回值的個數和類型 if err != nil { if err == io.EOF { break; } fmt.Println(" err = ", err) } fmt.Printf(" buf = #%s#\n", 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后面的\n也被讀取了