1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめてのGo言語(8. ファイル読み込み)

Last updated at Posted at 2025-10-13

はじめに

先日にアップしたはじめてのGo言語(7. privateとpublic)に続いて、Go言語の基礎を学んだ記録を記事としてまとめてみました。

実行環境

WSL2(Ubuntu 22.04.3 LTS)
go 1.18.1

読み込むファイル

  • テキスト3行のファイルを読み込ませます。
sumomo.txt
sumomo mo momo mo momo no uchi
sumomo mo momo mo momo no uchi
sumomo mo momo mo momo no uchi

基本的なファイル読み込み

  • 今回はファイル読み込みにosパッケージを利用しました。
    • 古いバージョンのGo言語だと、ioutilパッケージを使うのが一般的だったそうです。
  • JavaやC#などではtry~finallyでリソースを解放しますが、Go言語では遅延実行(defer)を使って関数から呼び出し元に戻る直前にリソースを解放するそうです。
  • Readメソッドの引数として指定したバッファ(byteスライス)のサイズ(※ここでは10バイト)だけ読み込んで、ファイルの終端(※戻り値nが0)になるまで読み込み処理を繰り返しています。
read.go
package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println("ファイル読み込み開始...")

    f, err := os.Open("sumomo.txt")
    if err != nil {
        fmt.Println("ファイルを開く際にエラーが発生しました。")
        return
    }

    // 関数が終了した際にファイルを確実に閉じる。
    defer f.Close()
    
    buff := make([]byte, 10)

    for {
        n, err := f.Read(buff)

        if n==0 {
            break
        }
        if err != nil {
            fmt.Println("ファイル読み込みでエラーが発生しました。")
            break
        }

        fmt.Print(string(buff[:n]))
    }
    fmt.Println("ファイル読み込みが完了しました。")
}
実行結果
ファイル読み込み開始...
sumomo mo momo mo momo no uchi
sumomo mo momo mo momo no uchi
sumomo mo momo mo momo no uchi
ファイル読み込みが完了しました。

参考URL

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?