今天示範開啟檔案,循序讀入並列印.
// hello42
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
// 開檔
inputFile, Error := os.Open("input.txt")
// 判斷是否開檔錯誤
if Error != nil {
fmt.Println("開檔錯誤!")
return
}
// 離開時自動執行關檔
defer inputFile.Close()
// 宣告行計數器
cnt := 1
//
inputReader := bufio.NewReader(inputFile)
//^^^^^^^^^^^ ^^^^^^^ ^^^^^^^
// 緩衝輸入物件 建立函數 來源:已開啟檔案
// 用迴圈讀取檔案內容
for {
// 讀取字串直到遇到跳行符號
inputString, Error := inputReader.ReadString('\n')
// 若到檔尾時分發生 io.EOF 錯誤
// 根據此錯誤 判斷是否離開
if Error == io.EOF {
fmt.Println("已讀取到檔尾!!")
return
}
// 列印內容
fmt.Printf("第%2d行:%s\n", cnt, inputString)
cnt++
}
}
執行結果:
λ ./hello42
第 1行:玉面飛鷹倒拔垂楊柳 豹子頭誤入白虎堂
第 2行:林教頭刺配滄州道 玉面飛鷹大鬧野豬林
已讀取到檔尾!!
第 1行:玉面飛鷹倒拔垂楊柳 豹子頭誤入白虎堂
第 2行:林教頭刺配滄州道 玉面飛鷹大鬧野豬林
怎麼感覺玉面飛鷹變成魯智深了....
最後話...死老鷹能走生小雨