本节主要记录golang文件读取的相关操作:
一、读取文件内容:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
ReadFile("abc.txt")
}
func ReadFile(fileName string) {
file, err := os.Open(fileName)
defer func() {
fmt.Println("关闭文件读取")
file.Close()
}()
if err != nil {
fmt.Println(err)
return
}
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}
注意点:1、用os.Open()打开文件流后要记得关闭,一般用defer来完成关闭操作
2、可以通过scanner.Scan()函数来判断文件是否读取完毕,该函数返回bool值,返回false时表示文件读取完毕。
二、创建文件并向文件写入内容
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
WriteFile()
}
func WriteFile() {
file, err := os.Create("fibonacci.txt")
defer func() {
fmt.Println("关闭文件流")
file.Close()
}()
if err != nil {
fmt.Println(err)
return
}
writer := bufio.NewWriter(file)
defer writer.Flush()
fmt.Fprintln(writer, "Hello")
}
注意点:1、同上,打开文件流后必须关闭;
2、后需要调用writer.Flush()函数把数据刷入文件流,这样才能把内容写入文件。