The bufio package provides an efficient buffered Writer
which queues up bytes until a threshold is reached and then finishes the write operation to a file with minimum resources. The following source code snippet shows writing a string slice to a plain text file line-by-line.
package main import ( "bufio" "log" "os" ) func main() { sampledata := []string{"Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "Nunc a mi dapibus, faucibus mauris eu, fermentum ligula.", "Donec in mauris ut justo eleifend dapibus.", "Donec eu erat sit amet velit auctor tempus id eget mauris.", } file, err := os.OpenFile("test.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { log.Fatalf("failed creating file: %s", err) } datawriter := bufio.NewWriter(file) for _, data := range sampledata { _, _ = datawriter.WriteString(data + "\n") } datawriter.Flush() file.Close() }
The sampledata
is represented as a string slice which holds few lines of data which will be written to a new line within the file. The function os.OpenFile() is used with a flag combination to create a write-only file if none exists and appends to the file when writing.