1

.txt 文件有很多行,每行包含一个单词。所以我打开文件并将其传递给阅读器:

file, err := os.Open("file.txt")
check(err)
reader := bufio.NewReader(file)

现在我想将每一行存储在一段字符串中。我相信我需要使用 ReadBytes、ReadString、ReadLine 或 Scan 函数中的一个。任何有关如何实现这一点的建议将不胜感激。谢谢。

4

2 回答 2

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))
    }
}
于 2013-09-24T05:55:37.370 回答
1

作为r的实例*bufio.ReadermyList字符串的一部分,可以循环并读取行直到 EOL。

   for {
        line, err := r.ReadBytes('\n')
        if err != nil {
            break
        }
        myList = append(myList, string(line))
   }
于 2013-09-24T01:51:16.537 回答