dongxian1699 2014-04-01 14:44
浏览 568
已采纳

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 14: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条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题