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