一、一次性读取全部文件
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(完)。