文件流概念
數據保存在文件中,文件的輸入輸出是通過流來實現的
讀文件
帶緩衝的讀取文件方式
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))
}