Go 言語の組み込みモジュールを触ってみる-ファイルの読み込み(os.ReadFile)

はじめに

Go 言語の学習が少し進んできたため、いくつかの組み込みパッケージを触ってさらなる学習を進めていこうと思います。

今回取り上げるのは os パッケージの ReadFile 関数を取り上げます。

検証環境

1
2
3
4
5
$ uname -moi
x86_64 MacBookPro16,1 Darwin

$ go version
go version go1.16.3 darwin/amd64

インターフェイス

1
func ReadFile(name string) ([]byte, error)

説明

ファイル名を受け取り、ファイルの内容を返します。

正常終了時は error の戻り値が nil となります。

ReadFile はファイル全体を読み込むため、 error == EOF となることはありません。

( ということは他の関数では EOF となるケースが有るということでしょうか。 )

サンプルコード

main.go

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package main

import (
	"log"
	"os"
)

func main() {
	data, err := os.ReadFile("/tmp/test.txt")

	if err != nil {
		log.Fatal(err)
	}

	os.Stdout.Write(data)
}

実行

1
2
3
4
$ echo 'hello' > /tmp/test.txt

$ go run ./main.go
hello

ひとこと

ようやくファイルを読み込めるようになりました。