Search code examples
filegoio

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
}

Hi, I'm new to learning Go and I've been trying out some small use cases to learn it a bit better. I made this function to fill 10 lines of a file with "some text". When I tried this with error checking, the program panicked at the WriteString line. Am I misunderstanding something fundamental here? I looked at the documentation and I can't figure out why it doesn't like this. Thanks.


Solution

  • Need to use a function with write or append permission:

    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