Golang:将[] int写入文件

Sam*_*Sam 7 file go slice

我有一些数据 p []int,我想保存/加载到文件/从文件.我应该将此切片转换为[]byte并使用(如果是,如何?)

func (f *File) Read(b []byte) (n int, err Error)
func (f *File) Write(b []byte) (n int, err error)
Run Code Online (Sandbox Code Playgroud)

还是有其他方法保存[]int到文件?

我读了这个如何使用golang从/向文件读/写?,它没有帮助.

Not*_*fer 12

如果交换格式(在go之外的语言之间)或将其作为流读取对您来说并不重要,只需使用gob编码器和解码器即可.

http://golang.org/pkg/encoding/gob/

我们的想法是围绕编写器或读取器周围的解码器创建编码器,然后让他们对结构进行编码或解码.编码是这样的:

p := []int{1,2,3,4}

encoder := gob.NewEncoder(myFileWriter)
err = encoder.Encode(p)
if err != nil {
    panic(err)
}
Run Code Online (Sandbox Code Playgroud)

解码工作正好相反:

decoder := gob.NewDecoder(myFileReader)
p := []int{}

err = decoder.Decode(&p)
if err != nil {
         panic(err)
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用标准库中可用的类似方法,将数据存储为JSON或XML,这样可以更轻松地调试内容,并以其他语言打开数据(以大小和效率为代价).