我正在尝试将下面语句的输出写入文本文件,但我似乎无法找出是否有一个直接写入文本文件的printf函数.例如,如果下面的代码产生结果[5 1 2 4 0 3],我想将其读入文本文件以进行存储和持久化.有什么想法吗?
//choose random number for recipe r := 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])
您可以将
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) _,"%d\n",i[0]) check(err) _,i[1]) check(err) w.Flush() }
请注意,我在这里使用panic()仅仅是为了简洁起见,在现实生活中你应该适当地处理错误(在大多数情况下,这意味着除了退出程序之外的东西,恐慌()的作用).