dongxian1699 2014-04-01 06:44
浏览 569
已采纳

Golang:将[] int写入文件

I have some data in p []int, I want to save/load it to/from file. Should i convert this slice to []byte and use (if yes, how?)

func (f *File) Read(b []byte) (n int, err Error)
func (f *File) Write(b []byte) (n int, err error)

or there are other way to save []int to file?

I read this How to read/write from/to file using golang?, and it didn't help.

  • 写回答

2条回答 默认 最新

  • doujiufutaog59220 2014-04-01 06:57
    关注

    If interchanging the format (between languages other than go) or reading it as a stream is not important to you, just use the gob encoder and decoder.

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

    The idea is that you create an encoder around a writer, or a decoder around a reader, and then just ask them to encode or decode a struct. Encoding goes something like this:

    p := []int{1,2,3,4}
    
    encoder := gob.NewEncoder(myFileWriter)
    err = encoder.Encode(p)
    if err != nil {
        panic(err)
    }
    

    decoding works just the opposite way:

    decoder := gob.NewDecoder(myFileReader)
    p := []int{}
    
    err = decoder.Decode(&p)
    if err != nil {
             panic(err)
    }
    

    Alternatively, you can use similar methods available in the standard library, for storing the data as JSON or XML, which allow you more easily to debug things, and open the data from other languages (at the cost of size and efficiency).

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部