Go WriteString 函数恐慌?

Go WriteString function panicking?

func FileFill(filename string) error {
    f, err := os.Open("file.txt")
    if err != nil {
        panic("File not opened")
    }
    defer f.Close()

    for i := 0; i < 10; i++ {
        //I know this should have some error checking here
        f.WriteString("some text \n")
    }
    return nil
}

嗨,我刚开始学习 Go,我一直在尝试一些小用例来更好地学习它。我做了这个函数来用“一些文本”填充一个文件的 10 行。当我通过错误检查尝试此操作时,程序在 WriteString 行出现恐慌。我在这里误解了一些基本的东西吗?我查看了文档,但不明白为什么它不喜欢这样。谢谢

需要使用具有写入或追加权限的函数:

package main
import "os"

func main() {
   f, err := os.Create("file.txt")
   if err != nil {
      panic(err)
   }
   defer f.Close()
   for range [10]struct{}{} {
      f.WriteString("some text\n")
   }
}

https://golang.org/pkg/os#Create

// Choose the permit you want with os.OpenFile flags
file, err := os.OpenFile(path, os.O_RDWR, 0644) 

// or crate new file if not exist
file, err = os.OpenFile(path, os.O_RDWR|os.O_CREATE, 0755)

// or append new data into your file with O_APPEND flag
file, err = os.OpenFile(path, os.O_APPEND, 0755)

文档:https://pkg.go.dev/os#OpenFile