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

Golang:将 []int 写入文件

Golang:将 []int 写入文件

Go
慕桂英546537 2021-07-29 13:00:21
我有一些数据 p []int,我想将它保存/加载到/从文件中加载。我应该将此切片转换为[]byte并使用(如果是,如何?)func (f *File) Read(b []byte) (n int, err Error)func (f *File) Write(b []byte) (n int, err error)或者还有其他方法可以保存[]int到文件?
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

您可以使用


file.WriteString(fmt.Sprintln(p))

一个完整的例子:


    /*path of the file test.txt : you have to change it*/

var path = "/Users/Pippo/workspace/Go/src/......./test.txt"


func main() {


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

    fmt.Println(p)

    createFile()

    writeFile(p)


}


/*create file*/

func createFile() {


    // detect if file exists

    var _, err = os.Stat(path)


    // create file if not exists

    if os.IsNotExist(err) {

        var file, err = os.Create(path)

        if isError(err) {

            return

        }

        defer file.Close()

    }


    fmt.Println("==> done creating file", path)

}




/* print errors*/

func isError(err error) bool {

    if err != nil {

        fmt.Println(err.Error())

    }


    return (err != nil)

}


/*writeFile write the data into file*/

func writeFile(p []int) {


    // open file using READ & WRITE permission

    var file, err = os.OpenFile(path, os.O_RDWR, 0644)


    if isError(err) {

        return

    }

    defer file.Close()


    // write into file

    _, err = file.WriteString(fmt.Sprintln(p))

    if isError(err) {

        return

    }


    // save changes

    err = file.Sync()

    if isError(err) {

        return

    }


    fmt.Println("==> done writing to file")

}



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

添加回答

举报

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