c0baa15591f8f469a9360cc97a100eaa.png

一、一次性读取全部文件

1、使用 os 包配合 ioutil 包读取

package 

2、仅使用 ioutil 包读取

package 

二、逐行读取文件

1、使用 bufio.NewReader 方法

package 

2、使用 bufio.NewScanner 方法

package 

三、按字节读取文件

1、使用 file.Read 每次读取固定字节

package 

2、使用 bufio.Read 每次读取固定字节

package main

import (
    "bufio"
    "fmt"
    "io"
    "log"
    "os"
)

func main() {
    file, err := os.Open("/yourPath/test.txt")
    if err != nil {
        log.Fatalf("open file failed: %s n", err.Error())
    }
    defer file.Close()
    reader := bufio.NewReader(file)
    buf := make([]byte, 50)
    bytes := make([]byte, 0)
    for {
        // 如果存在中文此方式可能出现乱码
        size, err := reader.Read(buf)
        if err == io.EOF || size == 0 {
            break
        }
        bytes = append(bytes, buf[:size]...)
        // 加入分隔符验证
        // bytes = append(bytes, []byte("###")...)
    }
    fmt.Println(string(bytes))
}

3、使用 bufio.ReadByte 每次读取一个字节

package 

4、使用 bufio.ReadRune 每次读取一个字符

package 

四、按分隔符读取文件

1、 bufio.ReadBytes

package 

2、bufio.ReadSlice

package 

3、bufio.ReadString

package 

以上,Van(完)。