go embed

go embed

go语言有文件嵌套的强大功能,方便了项目部署,不需要每次都带上不常变化的文件移植,直接将文件以二进制形式嵌入到程序中,但是容易变化的配置文件不建议嵌入到程序中

1、嵌入文件的字节数据

package main

import (
	_ "embed"
	"fmt"
)

//go:embed hello.txt
var data []byte

func main() {
	fmt.Println(string(data))
}

2、嵌入一个文件系统,里面放入文件或者目录

文件:

package main

import (
	"embed"
	"fmt"
)

//go:embed hello.txt
var data embed.FS

func main() {
    // 直接读取文件
    byteData, err := data.ReadFile("hello.txt")		// 注意是data.ReadFile()
	fmt.Println(string(byteData), err)
}

目录:

package main

import (
	"embed"
	"fmt"
	"path"
)

//go:embed txt
var data embed.FS

func main() {
	dir, err := data.ReadDir("txt")
	if err != nil {
		fmt.Println(err)
		return
	}
    // 遍历目录
	for _, entry := range dir {
        info, _ := entry.Info()	// entry.Info() 获取文件信息
        // 读取文件
		byteData, err := data.ReadFile(path.Join("txt", info.Name()))	// 注意要加上目录名
		fmt.Println(string(byteData), err)
	}
}
posted @ 2025-03-28 19:06  小依昂阳  阅读(40)  评论(0)    收藏  举报