Golang bufio.NewWriterSize() function example

package bufio

NewWriterSize returns a new Writer whose buffer has at least the specified size. If the argument io.Writer is already a Writer with large enough size, it returns the underlying Writer.

Golang bufio.NewWriterSize() function usage example

 package main

 import (
 "bufio"
 "fmt"
 "bytes"
 )

 func main() {
 screenBuffer := bytes.NewBuffer(nil)
 screenWriter := bufio.NewWriterSize(screenBuffer, 8192) // our buffer has size of 8192 = 8KB
 fmt.Fprint(screenWriter, "Hello, ")
 fmt.Fprint(screenWriter, "world! 你好世界")

 // print empty size buffer
 fmt.Printf("Buffer size is %d bytes for string [%s] \n", len(screenBuffer.Bytes()), string(screenBuffer.Bytes()))

 // flush to buffer
 screenWriter.Flush()
 fmt.Printf("Buffer size is %d bytes for string [%s] \n", len(screenBuffer.Bytes()), string(screenBuffer.Bytes()))
 }

Output :

Buffer size is 0 bytes for string []

Buffer size is 26 bytes for string [Hello, world! 你好世界]

Advertisement