文件流概念
数据保存在文件中,文件的输入输出是通过流来实现的
读文件
带缓冲的读取文件方式
golang 要读取一个文件内容,首先必须要打开这个文件,从文件中读取内容,然后进行后续的操作。简单的打开文件方式就是通过os包里面的Open函数,下面咱们就通过Open函数来操作一把。
package main
import(
"os"
"io"
"bufio"
)
func main(){
filePath := "/tmp/test.txt"
file, err := os.Open(filePath)
// 判断读取文件是否成功
if err != nil {
fmt.Println("读取文件失败:", err)
// 读取失败直接退出程序执行
}
// 关闭文件
defer file.Close()
// 通过文件指针file,使用bufio带缓冲的读取方式,
reader:= bufio.NewReader(file)
// 循环读取
for {
cnt, err:= reader.ReadString('\n')
if err == io.EOF {
break
}
fmt.Printf("%v", string(cnt))
}
}
不带缓冲的读取方式
通过io/ioutil包读取文件,这种方式适合小文件的读取
package main
import(
"fmt"
"io/ioutil"
)
func main() {
filePath := "/tmp/abc.txt"
// ioutil.ReadFile 函数不需要我们打开文件,判断打开是否成功,它已经帮我们封装好了,直接用即可
cnt, err := ioutil.ReadFile(filePath)
if err != nil {
fmt.Println("读取文件失败:", err)
return
}
fmt.Println(string(cnt))
}