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.
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
.
WriteFile
receives the target file's path, the bytes we wish to write, and a flag value (zero works fine for testing).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
, bufioWe 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.
string
"ABC" to a file on the disk. A new file is created if none exists.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
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.