GO读取文件(Open、Bufio、Ioutil)
1.普通读取文件
package main import ( "fmt" "io" "os" ) func main() { fileObj, err := os.Open("./Hello.go") if err != nil { fmt.Printf("打开错误:%v \n", err) return } defer fileObj.Close() var temp [128]byte for { n, err := fileObj.Read(temp[:]) if err == io.EOF { fmt.Println("文件读取完成") return } if err != nil { fmt.Println("读取文件异常:%v \n", err) return } fmt.Printf("读了%d个字节 \n", n) fmt.Println(string(temp[:n])) if n < 128 { return } } }
2.使用Bufio读取文件
package main import ( "bufio" "fmt" "io" "os" ) func readFile() { fileObj, err := os.Open("./Hello.go") if err != nil { fmt.Printf("打开错误:%v \n", err) return } defer fileObj.Close() reader := bufio.NewReader(fileObj) for { n, err := reader.ReadString('\n') if err == io.EOF { fmt.Println("文件读取完成") return } if err != nil { fmt.Println("读取文件异常:%v \n", err) return } fmt.Print(n) } } func main() { readFile() }
3.使用Ioutil读取文件
package main import ( "fmt" "io/ioutil" ) func main() { fileObj, err := ioutil.ReadFile("./Hello.go") if err != nil { fmt.Printf("打开错误:%v \n", err) return } fmt.Println(string(fileObj)) }
感谢:https://www.bilibili.com/video/BV1fz4y1m7Pm?p=71