GO讀取檔案(Open、Bufio、Ioutil)
阿新 • • 發佈:2021-06-23
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