Go では、標準ライブラリは、バイト配列を返す readline 操作用の低レベルの raw 関数を提供します。 readline 関数から文字列を取得するもっと便利な方法はありますか?
慣用的な解決策
Go で文字列を readline する慣用的なアプローチは、bufio を利用することです。リーダー構造体。 Readln() 関数は、入力バッファー リーダーから行 (末尾の改行 n なし) を返します。
import ( "bufio" "fmt" "os" ) func readln(r *bufio.Reader) (string, error) { var ( isPrefix bool = true err error = nil line, ln []byte ) for isPrefix && err == nil { line, isPrefix, err = r.ReadLine() ln = append(ln, line...) } return string(ln), err } func main() { f, err := os.Open(fi) if err != nil { fmt.Println("error opening file= ", err) os.Exit(1) } r := bufio.NewReader(f) s, e := readln(r) for e == nil { fmt.Println(s) s, e = readln(r) } }
この関数はファイルから行を読み取り、改行文字 (n) を取り除いて各行を出力します。コンソール。
以上がGo でファイルから行を文字列として効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。