我有一些数据 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,这样可以更轻松地调试内容,并以其他语言打开数据(以大小和效率为代价).