How to create new file using go script

Issue

I am new to go lang. I am able to create a new file from the terminal using go script. like this

go run ../myscript.go > ../filename.txt

but I want to create the file from the script.

package main

import "fmt"

func main() {
    fmt.Println("Hello") > filename.txt
}

Solution

If you are trying to print some text to a file one way to do it is like below, however if the file already exists its contents will be lost:

package main

import (
    "fmt"
    "os"
)

func main() {
    err := os.WriteFile("filename.txt", []byte("Hello"), 0755)
    if err != nil {
        fmt.Printf("Unable to write file: %v", err)
    }
}

The following way will allow you to append to an existing file if it already exists, or creates a new file if it doesn’t exist:

package main

import (
    "os"
    "log"
)


func main() {
    // If the file doesn't exist, create it, or append to the file
    f, err := os.OpenFile("access.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
    if err != nil {
        log.Fatal(err)
    }
   
    _, err = f.Write([]byte("Hello"))
    if err != nil {
        log.Fatal(err)
    }

    f.Close()
}

Answered By – Jack

Answer Checked By – Mary Flores (GoLangFix Volunteer)

Leave a Reply

Your email address will not be published.