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

标签 go

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

但是当我打开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) 您多次打开文件,循环的每次迭代; 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)
        }
    }
}

关于go - 如何使用 Golang 在文件中写入整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43600427/

相关文章:

go - gorilla /websocket发送和读取字节数据

go - Beego框架-api项目-我可以在 Controller 文件夹中有文件夹结构吗

go - 如何确保所有 goroutines 在没有 time.Sleep 的情况下终止?

go - 需要一些帮助来使用 bazel 构建自定义 Terraform 提供程序

mysql - 使用不同步的golang命令与phpmyadmin建立连接时出错。您一次运行了多个语句吗?”

go - 在 golang 中 slice unicode/ascii 字符串?

ios - 是否可以使用 gomobile 呈现/查看 html?

go - Go中的两种方式连接

struct - 无法在golang中包含多个文件

go - 将字符串转换为float32?