Goでembedを利用してファイルを取得する方法を学ぼう
2025年4月16日
Goではファイルを取得する方法はさまざまあります。
os.ReadFile()
を使用してファイルを読み込む方法もあれば、embed
パッケージを使用してファイルを取り込む方法もあります。
用途は少し異なりますが、embed
パッケージを使用するとビルド時にファイルを含めることができるため、配布時に非常に便利です。
簡単な例として、次のようなtxtファイルを作成してみましょう。
hello.txt
Hello, World!
それでは、embed
パッケージを使用してこのファイルを取り込んでみましょう。
main.go
package main
import (
"fmt"
_ "embed"
)
//go:embed hello.txt
var content string
func main() {
fmt.Println(content)
}
上記のコードを実行すると、次のような結果が得られます。
Hello, World!
これは単にtxt
ファイルだけでなく、html
、css
、js
、yaml
など、事実上すべてのファイルを取り込んで読み込むことができるということです。
ただし、サイズが非常に大きなファイルを取り込むとメモリ消費が増大するため、注意が必要です。