gist: demonstrates how to either write to STDOUT or to a buffer in golang

File: bufWrite.go

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// demonstrates how to either write to STDOUT or to a buffer

package main

import (
        "bufio"
        "fmt"
        "os"
    )

func main() {

    var f *os.File
    var err error
    var count int
    fname := "testfile"

    // change to either true|false
    outputToScreen := false
    if outputToScreen {
        f = os.Stdout
    } else {
        f, err = os.OpenFile(fname,os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
        if err != nil {
            fmt.Println("Error opening file")
            return
        }
    }

    writer := bufio.NewWriter(f)
    count, err = writer.WriteString("alpha\n")
    if err != nil {
        fmt.Println("Error writing to buffer")
        return
    }
    writer.Flush()

    if !outputToScreen {
        fmt.Printf("Wrote %d bytes to file: %s\n", count, fname)
    }
}