kitoko552.memo

kitoko552のメモ

Goでファイルの内容を1行ずつ読み込む

※この記事はQiitaにも投稿されています。

Goでファイルの内容を1行ずつ読み込む - Qiita


Goでファイルの内容を1行ずつ読み込むときは、bufioを使います。

package main

import (
    "os"
    "bufio"
    "fmt"
)

func main() {
    filename := "file.txt"

    // ファイルオープン
    fp, err := os.Open(filename)
    if err != nil {
        // エラー処理
    }
    defer fp.Close()

    scanner := bufio.NewScanner(fp)

    for scanner.Scan() {
        // ここで一行ずつ処理
        fmt.Println(scanner.Text())
    }

    if err = scanner.Err(); err != nil {
        // エラー処理
    }
}

1行ずつ読む必要がない場合は、io/ioutilを使うことで簡単に読み込むことができます。

package main

import (
    "io/ioutil"
    "fmt"
)

func main() {
    filename := "file.txt"

    text, err := ioutil.ReadFile(filename)
    if err != nil {
        // エラー処理
    }

    // ReadFileの返り値は[]byte型なので注意
    fmt.Println(string(text))
}

※この記事では以下の本を参考にしています。

WEB+DB PRESS Vol.82

WEB+DB PRESS Vol.82

  • 作者: 山口徹,Jxck,佐々木大輔,横路隆,加来純一,山本伶,大平武志,米川健一,坂本登史文,若原祥正,和久田龍,平栗遵宜,伊藤直也,佐藤太一,高橋俊幸,海野弘成,五嶋壮晃,佐藤歩,吉村総一郎,橋本翔,舘野祐一,中島聡,渡邊恵太,はまちや2,竹原,河合宜文,WEB+DB PRESS編集部
  • 出版社/メーカー: 技術評論社
  • 発売日: 2014/08/23
  • メディア: 大型本
  • この商品を含むブログ (1件) を見る