我正在尝试将下面语句的输出写入文本文件,但我似乎无法找出是否有一个直接写入文本文件的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])
Run Code Online (Sandbox Code Playgroud)
syn*_*gma 15
您可以fmt.Fprintf与a一起使用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()
}
Run Code Online (Sandbox Code Playgroud)
请注意,我在panic()这里只是为了简洁起见,在现实生活中你应该适当地处理错误(在大多数情况下,这意味着除了退出程序之外的其他东西panic()).
此示例将把值写入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()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12630 次 |
| 最近记录: |