将string转换成 io.Writer,可以进行类似于write的操作,类似于写文件一样。

1
2
3
4
s := "Hello"
buf := bytes.NewBufferString(s)
fmt.Fprint(buf, ", World!")
fmt.Println(buf.String())

同样的,打开的文件也可以被转换成 io.Writer,继而直接向其写入数据。

1
2
3
4
5
6
7
8
f, err := os.OpenFile(fileName, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.ModePerm)
if err != nil {
return
}
defer f.Close()

w := bufio.NewWriter(f)
fmt.Fprintln(w, fmt.Sprintf("start analysis log at the %s \r\n", `"`+logFileDir+`"`))

以上不管是写文件还是写字符串,在需要大量写时,效率即会体现出来。