.txt文件有许多行,每行包含一个单词。所以我打开文件并将其传递给读者:
file, err := os.Open("file.txt")
check(err)
reader := bufio.NewReader(file)
现在我想将每一行存储在一个字符串片段中。我相信我需要使用ReadBytes,ReadString,ReadLine或Scan功能。任何关于如何实现这一点的建议将不胜感激。感谢。
答案 0 :(得分:3)
您可以使用ioutil.ReadFile()
将所有行读入字节切片,然后在结果上调用split
:
package main
import (
"fmt"
"io/ioutil"
"log"
"strings"
)
func main() {
data, err := ioutil.ReadFile("/etc/passwd")
if err != nil {
log.Fatal(err)
}
lines := strings.Split(string(data), "\n")
for _, line := range lines {
fmt.Println("line:", string(line))
}
}
答案 1 :(得分:1)
将r
作为*bufio.Reader
的实例,将myList
作为一个字符串切片,而不是一个可以循环读取行直到EOL。
for {
line, err := r.ReadBytes('\n')
if err != nil {
break
}
myList = append(myList, string(line))
}