概要
- bufioのScannerを使ったファイル読み込みはデフォルトでは1行の長さが65536バイトを超えた場合はエラーとなるので1行の最大長を設定しなければならない
- bufioのScannerのエラーハンドリングを忘れない
やり方
- 初期サイズを与えたbyte配列を生成する
- Buffer関数にbyte配列と1行の最大長のサイズを設定する
- エラーハンドリングを忘れがちなので注意する(これがないとなぜファイルが読めないのか気づけ無い)
scanner := bufio.NewScanner(fp)
buf := make([]byte, 65536) // 初期サイズ
scanner.Buffer(buf, 1048576) // 最大サイズ
for scanner.Scan() {
log.Print(scanner.Text())
}
// エラーハンドリング
if err := scanner.Err(); err != nil {
log.Printf("scanner. %v", err)
}