一、缓冲读取文件(适用于大文件读取)
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
//打开文件
file, err := os.Open("E:/a1.txt")
//判断文件打开是否错误
if err != nil {
fmt.Println("open file err:", err)
}
//要及时关闭文件,防止内存泄漏,defer延时关闭,文件会在函数使用完后关闭
defer file.Close()
//默认缓冲4096
reader := bufio.NewReader(file)
//循环读取文件
for {
str, err := reader.ReadString('\n')//每读取到一个换行就结束
if err == io.EOF { //io.EOF表示文件末尾
break
}
fmt.Print(str)
}
}
二、不带缓冲读取文件(适用于小文件读取)
package main
import (
"fmt"
"io/ioutil"
)
func main() {
file := "E:/a1.txt"
byteFile, err := ioutil.ReadFile(file)
if err != nil {
fmt.Println("read file err:",err)
}
//不需要关闭文件,ReadFile内部给我们封装好了
fmt.Println(byteFile)//这里不转string会是二进制流
fmt.Println(string(byteFile))
}