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

Golang中如何将这条语句的输出写入文件

Golang中如何将这条语句的输出写入文件

Go
catspeake 2021-12-13 10:46:17
我正在尝试将下面语句的输出写入文本文件,但我似乎无法确定是否有直接写入文本文件的 printf 函数。例如,如果下面的代码产生结果 [5 1 2 4 0 3] 我想将其读入文本文件以进行存储和持久化。请问有什么想法吗?我想转到文本文件的代码://choose random number for reciper := rand.New(rand.NewSource(time.Now().UnixNano()))i := r.Perm(5)fmt.Printf("%v\n", i)fmt.Printf("%d\n", i[0])fmt.Printf("%d\n", i[1])
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

您可以fmt.Fprintf与io.Writer代表文件句柄的一起使用。


这是一个简单的例子:


func check(err error) {

    if err != nil {

        panic(err)

    }

}


func main() {

    f, err := os.Create("/tmp/yourfile")

    check(err)

    defer f.Close()


    w := bufio.NewWriter(f)

    //choose random number for recipe

    r := rand.New(rand.NewSource(time.Now().UnixNano()))

    i := r.Perm(5)


    _, err = fmt.Fprintf(w, "%v\n", i)

    check(err)

    _, err = fmt.Fprintf(w, "%d\n", i[0])

    check(err)

    _, err = fmt.Fprintf(w, "%d\n", i[1])

    check(err)

    w.Flush()

}

此处显示了在 Go 中写入文件的更多方法。


请注意,我在panic()这里使用只是为了简洁起见,在现实生活场景中,您应该适当地处理错误(在大多数情况下,这意味着除了退出程序之外的其他事情,还有什么panic())。


查看完整回答
反对 回复 2021-12-13
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

此示例将值写入output.txt文件。


package main


import (

    "bufio"

    "fmt"

    "math/rand"

    "os"

    "time"

)


func main() {


    file, err := os.OpenFile("output.txt", os.O_WRONLY|os.O_CREATE, 0666)

    if err != nil {

        fmt.Println("File does not exists or cannot be created")

        os.Exit(1)

    }

    defer file.Close()


    w := bufio.NewWriter(file)

    r := rand.New(rand.NewSource(time.Now().UnixNano()))

    i := r.Perm(5)

    fmt.Fprintf(w, "%v\n", i)


    w.Flush()

}


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号