如何使用Golang在文件中写入整数?

时间:2017-04-25 02:08:41

标签: go

  1. 我生成0到10之间的数字
  2. 我创建了一个文件
  3. 我尝试通过将整数转换为字符串
  4. 来写入文件

    但是当我打开h.txt文件时,没有任何文字

    如何修复此问题并将数字写入h.txt文件?

    package main
    
    import "os"
    
    func main() {
        for i := 0; i < 10; i++ { // Generating...
    
            f, _ := os.Create("h.txt") // creating...
    
            f.WriteString(string(i)) // writing...
    
            defer f.Close()
        }
    }
    

    谢谢!

1 个答案:

答案 0 :(得分:3)

您的代码存在一些问题。

1)您在循环的每次迭代中多次打开文件;如果文件已存在,os.Create将截断该文件,因此您可能会在每次迭代时编写并截断该文件。

2)您没有检查文件是否正确打开而没有错误

3)defer安排代码在函数结束时运行,而不是在范围的末尾。 (即在迭代结束时)

4)您应该正确转换整数,使用转换并检查错误:_, err := f.WriteString(fmt.Sprintf("%d",i)),然后检查错误。

试试这个:

package main

import (
    "fmt"
    "os"
)

func main() {
    f, err := os.Create("h.txt") // creating...
    if err != nil {
        fmt.Printf("error creating file: %v", err)
        return
    }
    defer f.Close()
    for i := 0; i < 10; i++ { // Generating...
        _, err = f.WriteString(fmt.Sprintf("%d\n", i)) // writing...
        if err != nil {
            fmt.Printf("error writing string: %v", err)
        }
    }
}