Golang ioutil.WriteFile, os.Create (Write File to Disk)Write files to disk with ioutil.WriteFile and os.Create. Use strings and byte slices.
WriteFile. A file can be written to disk. With Golang we can use a helper module like ioutil to do this easily. For other cases, a NewWriter can be used to write many parts.
Copy File
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.
WriteFile This method receives the target file's path, the bytes we wish to write, and a flag value (zero works fine for testing).
Output The string "Hello friend" is written to the file correctly. The permissions (in Linux) may need to be adjusted first.
Golang program that uses ioutil.WriteFile
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.
Flush We use flush after writing to the file to ensure all the writes are executed before the program terminates.
Golang program that writes strings to file
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() }
A summary. With Golang 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.
© 2007-2021 sam allen. see site info on the changelog