3 回答

TA貢獻(xiàn)1853條經(jīng)驗 獲得超18個贊
有多種方法可以逐行讀取文件,但是ioutil.ReadFile確實是一個不錯的開始。當(dāng)然,您可以將其分配給變量。查看ReadFile的函數(shù)簽名,看看它如何返回字節(jié)片和錯誤。分配兩個;檢查錯誤是否為nil。如果錯誤不是nil,則打印錯誤,這樣您就可以看到問題所在。然后,一旦將字節(jié)包含在變量中,請嘗試逐行將其吐出。嘗試使用bytes.Split,或更簡單的方法是將其轉(zhuǎn)換為字符串,然后使用strings.Split。

TA貢獻(xiàn)1864條經(jīng)驗 獲得超6個贊
自從提出并回答了這個問題以來,bufio軟件包已更新(對于Go 1.1),也許現(xiàn)在有了更好的解決方案(并不是所有這些都不好)。
bufio軟件包中的Scanner類型使此操作非常容易:
func main() {
f, e := os.Open("one-hundred_50.txt")
if e != nil {
// error opening file, handle it
}
s := bufio.NewScanner(f)
for s.Scan() {
// scanner.Text() contains the current line
}
if e = s.Err(); e != nil {
// error while scanning; no error at EOF
}
}
- 3 回答
- 0 關(guān)注
- 298 瀏覽
添加回答
舉報