golang中读取文件有多种方式,本文介绍按行读取文件并保存到切片中方法。
文件操作是程序设计中的常用基本功能,golang中也支持使用不同的方法实现文件读取。
Scan
package main
import (
"bufio"
"fmt"
"os"
)
func readFile(file string, result *[]string) error {
fp, err := os.Open(file)
if err != nil {
return err
}
defer fp.Close()
buf := bufio.NewScanner(fp)
for buf.Scan() {
line := buf.Text()
if len(line) > 0 {
*result = append(*result, line)
}
}
return nil
}
func main() {
file := "./tmp.txt"
lines := []string{}
err := readFile(file, &lines)
if err != nil {
fmt.Printf("read [%v] failed! [%v]\n", file, err)
return
}
for idx, line := range lines {
fmt.Printf("%v [%v]\n", idx, line)
}
}
ScanText