1. 程式人生 > 其它 >GO讀取檔案(Open、Bufio、Ioutil)

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