为了账号安全,请及时绑定邮箱和手机立即绑定

读取文件在尝试读取文件时返回 nil

读取文件在尝试读取文件时返回 nil

Go
潇潇雨雨 2022-08-01 09:27:55
我在尝试读取文件时在调试器中获取了。我不确定这是路径问题还是读者指针在哪里。FetchFlags是如何触发的是由最终调用.nilsampleFlagstest.jsonhandlerserver.goFetchFlagsflags.gopackage flagsimport (    "encoding/json"    "fmt"    "io/ioutil")type Flag struct {    Name     string `json:"name"`    Category string `json:"category"`    Label    string `json:"label"`}func FetchFlags() []Flag {    sampleFlags, _ := ioutil.ReadFile("test.json")    fmt.Printf("File contents: %s", sampleFlags)    var Flags []Flag    _ = json.Unmarshal(sampleFlags, &Flags)    return Flags}结构:/server  server.go/package  /flags    flags.go    test.json  /pack_a  /pack_b
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

该路径应与您的 main.go(或等效)文件相关,而不是与您的软件包相关。(绝对路径也应该有效,但我不是100%确定)

如果您考虑一下,那么您将意识到它直接或间接地导入到您的主文件中。您的代码编译/执行不会跳转到 ,而是将该代码导入到主文件中。package/flagspackage/flags

我建议您使用abosulte路径或相对于主文件的路径。


查看完整回答
反对 回复 2022-08-01
?
繁花如伊

TA贡献2012条经验 获得超12个赞

您正在尝试打开相对于包路径的文件。这是一种糟糕的设计方法。例如,根据编译方法,Go可能会将二进制文件放在目录中。并且不会有文件。$GOROOT/bintest.json

为您的文件使用绝对路径,或使用如何打开相对于我的GOPATH的文件?中的方法


查看完整回答
反对 回复 2022-08-01
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信