Go言語でファイルを読み込む方法!全読み・一行ずつの読み方を初心者向けに徹底解説
生徒
「Go言語でファイルを読み込むってどうやるんですか?」
先生
「Go言語では、ファイルを丸ごと読む方法や、一行ずつ読む方法などいくつかのやり方があります。」
生徒
「一行ずつ読むってどういうことですか?」
先生
「例えばテキストファイルを一行ずつ順番に処理する方法です。ログファイルなどを扱うときによく使います。」
生徒
「なるほど、全部読む方法と使い分けるんですね!」
先生
「その通りです。それでは基本から順番に見ていきましょう。」
1. Go言語でファイル読み込みとは
Go言語でのファイル読み込みとは、パソコンに保存されているテキストファイルやデータファイルの内容をプログラムで取得することです。 ファイルとは、メモ帳で作る文章やログデータなどのことを指します。
初心者の方は、まず「ファイルの中身をプログラムで取り出す」というイメージを持つことが大切です。 例えば、ノートに書いた内容を読み返すように、プログラムがファイルを読み取るという仕組みです。
Go言語では主に以下の方法でファイルを読み込みます。
- ファイルを一括で読み込む方法
- ファイルを一行ずつ読み込む方法
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の仕組みと注意点
os.ReadFile は便利ですが、ファイルサイズが大きい場合は注意が必要です。
なぜなら、すべての内容を一度にメモリに読み込むためです。
メモリとは、パソコンが一時的にデータを保存する場所です。 大きなファイルを読み込むと、動作が遅くなったりエラーになる可能性があります。
小さな設定ファイルや短いテキストには最適ですが、大量データには別の方法を使いましょう。
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の動きと仕組み
Scanner は、ファイルを少しずつ読み込んで処理する仕組みです。
一行ずつ読み取ることで、メモリの使用量を抑えることができます。
Scan() は次の行があるかどうかを確認し、
Text() でその行の内容を取得します。
このように処理を繰り返すことで、ファイル全体を安全に扱えます。
6. ファイルを開くときの基本処理
ファイルを扱うときは、必ず開いて閉じるという流れが必要です。
Go言語では os.Open を使ってファイルを開きます。
file, err := os.Open("sample.txt")
if err != nil {
fmt.Println("エラー:", err)
return
}
defer file.Close()
defer は、処理が終わったときに自動でファイルを閉じる命令です。
閉じ忘れるとエラーの原因になるため、必ず書く習慣をつけましょう。
7. エラー処理の重要性
ファイル読み込みではエラー処理が非常に重要です。 ファイルが存在しない場合や、アクセス権がない場合などにエラーが発生します。
if err != nil {
fmt.Println("ファイル読み込みに失敗しました")
return
}
エラー処理をしないと、プログラムが突然止まる原因になります。 初心者の方でも必ず書くようにしましょう。
8. 全読みと一行読みの使い分け
Go言語でファイルを読み込むときは、用途によって方法を使い分けることが重要です。
- 小さいファイルは全読み込み
- 大きいファイルは一行ずつ読み込み
例えば、設定ファイルは全読み込み、ログファイルは一行ずつ読み込みという使い方が一般的です。
この使い分けを理解することで、効率的で安全なプログラムを書くことができます。
【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導
「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。
本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。
具体的な開発内容と環境
【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。
【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。
この60分で得られる3つの理解
「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。
データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。
ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。
※本講座は、将来的にバックエンドエンジニアやクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。
初めてのGo言語を一緒に学びましょう!