ログイン中のQiita Team
ログイン中のチームがありません

Qiita Team にログイン
コミュニティ
OrganizationイベントアドベントカレンダーQiitadon (β)
サービス
Qiita JobsQiita ZineQiita Blog
Go
ZorinOS
15
どのような問題がありますか?

この記事は最終更新日から3年以上が経過しています。

Organization

Go言語でのファイル読み取り

Go言語でのファイル読み取り

環境

go version go1.9.4
Zorin OS 12.3

概要

Go言語を使ったファイルの読み取りプログラムについてまとめる

ファイル読み取り処理

まず読み取るファイルを作成します。内容は何でもOK。

test.txt
これはファイル読み取り処理用に作られたファイルです
テスト用

読み取りプログラムを記述。
ファイル読み取りに必要なものは2つ。
byte型スライスとosパッケージ。

test_read.go
package main

import(
    "fmt"
    "os"
)

func main(){
    fmt.Println("ファイル読み取り処理を開始します")
    // ファイルをOpenする
    f, err := os.Open("test.txt")
    // 読み取り時の例外処理
    if err != nil{
        fmt.Println("error")
    }
    // 関数が終了した際に確実に閉じるようにする
    defer f.Close()

    // バイト型スライスの作成
    buf := make([]byte, 1024)
    for {
        // nはバイト数を示す
        n, err := f.Read(buf)
        // バイト数が0になることは、読み取り終了を示す
        if n == 0{
            break
        }
        if err != nil{
            break
        }
        // バイト型スライスを文字列型に変換してファイルの内容を出力
        fmt.Println(string(buf[:n]))
    }
}

出力
ファイル読み取り処理を開始します
これはファイル読み取り処理用に作られたファイルです
テスト用

ファイル読み取り処理2

io/ioutilパッケージを使うと、読み取り部分がスッキリする。

test_read2.go
package main

import(
    "fmt"
    "os"
    "io/ioutil"
)

func main(){
    fmt.Println("ファイル読み取り処理を開始します")
    // ファイルをOpenする
    f, err := os.Open("test.txt")
    if err != nil{
        fmt.Println("error")
    }
    defer f.Close()

    // 一気に全部読み取り
    b, err := ioutil.ReadAll(f)
    // 出力
    fmt.Println(string(b))
}
出力
ファイル読み取り処理を開始します
これはファイル読み取り処理用に作られたファイルです
テスト用

出力結果も同じなので問題ない。

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
Kashiwara
nimとtsが好きです よろしくお願いします
sportsfield
人材支援会社、株式会社スポーツフィールドのIT・WEB開発部門
この記事は以下の記事からリンクされています

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Azure Kubernetes Serviceに関する記事を投稿しよう!
~
15
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー