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.