カテゴリ: Go言語 更新日: 2026/05/25

Go言語でファイルを読み込む方法!全読み・一行ずつの読み方を初心者向けに徹底解説

Go言語でファイルを読み込む方法!全読み・一行ずつの読み方
Go言語でファイルを読み込む方法!全読み・一行ずつの読み方

先生と生徒の会話形式で理解しよう

生徒

「Go言語でファイルを読み込むってどうやるんですか?」

先生

「Go言語では、ファイルを丸ごと読む方法や、一行ずつ読む方法などいくつかのやり方があります。」

生徒

「一行ずつ読むってどういうことですか?」

先生

「例えばテキストファイルを一行ずつ順番に処理する方法です。ログファイルなどを扱うときによく使います。」

生徒

「なるほど、全部読む方法と使い分けるんですね!」

先生

「その通りです。それでは基本から順番に見ていきましょう。」

1. Go言語でファイル読み込みとは

1. Go言語でファイル読み込みとは
1. Go言語でファイル読み込みとは

Go言語でのファイル読み込みとは、パソコンに保存されているテキストファイルやデータファイルの内容をプログラムで取得することです。 ファイルとは、メモ帳で作る文章やログデータなどのことを指します。

初心者の方は、まず「ファイルの中身をプログラムで取り出す」というイメージを持つことが大切です。 例えば、ノートに書いた内容を読み返すように、プログラムがファイルを読み取るという仕組みです。

Go言語では主に以下の方法でファイルを読み込みます。

  • ファイルを一括で読み込む方法
  • ファイルを一行ずつ読み込む方法

2. ファイルを丸ごと読み込む方法

2. ファイルを丸ごと読み込む方法
2. ファイルを丸ごと読み込む方法

ファイル全体を一度に読み込む方法は、小さなファイルを扱うときに便利です。 Go言語では os.ReadFile を使うことで簡単に実現できます。


package main

import (
    "fmt"
    "os"
)

func main() {
    data, err := os.ReadFile("sample.txt")
    if err != nil {
        fmt.Println("エラー:", err)
        return
    }

    fmt.Println(string(data))
}

このコードでは、ファイルの内容をまとめて読み込み、文字列として表示しています。 data はバイトというデータ形式なので、文字列に変換して表示します。

3. os.ReadFileの仕組みと注意点

3. os.ReadFileの仕組みと注意点
3. os.ReadFileの仕組みと注意点

os.ReadFile は便利ですが、ファイルサイズが大きい場合は注意が必要です。 なぜなら、すべての内容を一度にメモリに読み込むためです。

メモリとは、パソコンが一時的にデータを保存する場所です。 大きなファイルを読み込むと、動作が遅くなったりエラーになる可能性があります。

小さな設定ファイルや短いテキストには最適ですが、大量データには別の方法を使いましょう。

4. bufioを使って一行ずつ読み込む方法

4. bufioを使って一行ずつ読み込む方法
4. bufioを使って一行ずつ読み込む方法

ファイルを一行ずつ読みたい場合は、bufio パッケージを使います。 これは効率よくデータを処理するための仕組みです。


package main

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

func main() {
    file, err := os.Open("sample.txt")
    if err != nil {
        fmt.Println("エラー:", err)
        return
    }
    defer file.Close()

    scanner := bufio.NewScanner(file)

    for scanner.Scan() {
        fmt.Println(scanner.Text())
    }
}

この方法では、ファイルを一行ずつ順番に読み込みます。 大きなファイルでも効率よく処理できるのが特徴です。

5. Scannerの動きと仕組み

5. Scannerの動きと仕組み
5. Scannerの動きと仕組み

Scanner は、ファイルを少しずつ読み込んで処理する仕組みです。 一行ずつ読み取ることで、メモリの使用量を抑えることができます。

Scan() は次の行があるかどうかを確認し、 Text() でその行の内容を取得します。

このように処理を繰り返すことで、ファイル全体を安全に扱えます。

6. ファイルを開くときの基本処理

6. ファイルを開くときの基本処理
6. ファイルを開くときの基本処理

ファイルを扱うときは、必ず開いて閉じるという流れが必要です。 Go言語では os.Open を使ってファイルを開きます。


file, err := os.Open("sample.txt")
if err != nil {
    fmt.Println("エラー:", err)
    return
}
defer file.Close()

defer は、処理が終わったときに自動でファイルを閉じる命令です。 閉じ忘れるとエラーの原因になるため、必ず書く習慣をつけましょう。

7. エラー処理の重要性

7. エラー処理の重要性
7. エラー処理の重要性

ファイル読み込みではエラー処理が非常に重要です。 ファイルが存在しない場合や、アクセス権がない場合などにエラーが発生します。


if err != nil {
    fmt.Println("ファイル読み込みに失敗しました")
    return
}

エラー処理をしないと、プログラムが突然止まる原因になります。 初心者の方でも必ず書くようにしましょう。

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

8. 全読みと一行読みの使い分け

8. 全読みと一行読みの使い分け
8. 全読みと一行読みの使い分け

Go言語でファイルを読み込むときは、用途によって方法を使い分けることが重要です。

  • 小さいファイルは全読み込み
  • 大きいファイルは一行ずつ読み込み

例えば、設定ファイルは全読み込み、ログファイルは一行ずつ読み込みという使い方が一般的です。

この使い分けを理解することで、効率的で安全なプログラムを書くことができます。

関連セミナーのご案内

【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導

「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。

本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。

具体的な開発内容と環境

【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。

【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。

この60分で得られる3つの理解

1. 環境構築の完全な理解

「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。

2. Go言語の基本構造(変数・型)

データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。

3. 読みやすいコードの書き方

ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。

※本講座は、将来的にバックエンドエンジニアクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。

セミナー画像

初めてのGo言語を一緒に学びましょう!

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinのクラスドキュメントコメントの書き方ガイド|初心者でもわかるKDocの基本と書き方
New2
Go言語
Go言語の関数設計パターン集!可読性と再利用性を高めよう
New3
Go言語
Go言語のインターフェースと抽象化の考え方を初心者向けに解説
New4
Kotlin
Kotlinのsorted・sortedByでコレクションをソートする方法【初心者向け完全ガイド】
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.2
Java&Spring記事人気No2
Swift
Swift入門ガイド|基本構文と書き方をマスターしよう
No.3
Java&Spring記事人気No3
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.4
Java&Spring記事人気No4
Kotlin
Kotlinで画面遷移を実装しよう!初心者でもわかるIntentの使い方完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のマルチステージビルド完全解説!Dockerで軽量なコンテナを作る方法
No.6
Java&Spring記事人気No6
Kotlin
Kotlinの可視性修飾子を完全ガイド!public・private・internalの意味と使い分けを初心者向けに解説
No.7
Java&Spring記事人気No7
Go言語
Go言語の構造体を使った設計パターン集(DTO・VOなど)
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説