WriteFile. A file can be written to disk. With Go we can use a helper module like ioutil to do this easily. For other cases, a NewWriter can be used to write many parts.
With ioutil, we can avoid calling os.Create and bufio.NewWriter. The ioutil.WriteFile method simplifies writing an entire file in one call.
Ioutil example. To begin, we have a string we want to write to a file ("Hello friend"). Then we convert this string to a byte slice so we can pass it to WriteFile.
Info WriteFile receives the target file's path, the bytes we wish to write, and a flag value (zero works fine for testing).
Result The string "Hello friend" is written to the file correctly. The permissions (in Linux) may need to be adjusted first.
package main
import (
"fmt""io/ioutil"
)
func main() {
// Get byte data to write to file.
dataString := "Hello friend"
dataBytes := []byte(dataString)
// Use WriteFile to create a file with byte data.
ioutil.WriteFile("/home/sam/example.txt", dataBytes, 0)
fmt.Println("DONE")
}Hello friend
Os.create, bufio. We create a new Writer with the bufio.NewWriter function. The file handle we pass to NewWriter must have write access. We must use os.Create (not os.Open) to write a file.
Here We write the string "ABC" to a file on the disk. A new file is created if none exists.
Detail We use flush after writing to the file to ensure all the writes are executed before the program terminates.
package main
import (
"bufio""os"
)
func main() {
// Use os.Create to create a file for writing.
f, _ := os.Create("C:\\programs\\file.txt")
// Create a new writer.
w := bufio.NewWriter(f)
// Write a string to the file.
w.WriteString("ABC")
// Flush.
w.Flush()
}ABC
A summary. With Go we have a language that is well-optimized for writing files to disk. The ioutil module, as always, can reduce the amount of code needed to perform this common task.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Mar 14, 2023 (edit).