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

 

posted @ 2021-06-23 16:42  蜗牛的礼物  阅读(135)  评论(0编辑  收藏  举报