Golang : Reset buffer example




There are two ways to reset a buffer that with content ( length not equal zero ). You can use either Reset() or Truncate() methods found in the bytes.NewBuffer() function. The following example demonstrates how to create a buffer, check the size and capacity before and after clearing the buffer content.

 package main

 import (
 "bytes"
 "fmt"
 )

 func main() {

 buffer := bytes.NewBuffer([]byte("abcdefghijkl"))

 // convert buffer to bytes and to string for println
 fmt.Println("Before reset : ", string(buffer.Bytes()))
 fmt.Printf("Buffer's Length %d and capacity %d \n", len(buffer.Bytes()), cap(buffer.Bytes()))

 buffer.Reset()

 fmt.Println("After reset : ", string(buffer.Bytes()))
 fmt.Printf("Buffer's Length %d and capacity %d \n", len(buffer.Bytes()), cap(buffer.Bytes()))

 buffer2 := bytes.NewBuffer([]byte("mnopqrstuvwxyz"))

 fmt.Println("Before truncate(0) : ", string(buffer2.Bytes()))
 fmt.Printf("Buffer 2's Length %d and capacity %d \n", len(buffer2.Bytes()), cap(buffer2.Bytes()))

 // alternate way to reset buffer
 buffer2.Truncate(0)

 fmt.Println("After truncate(0) : ", string(buffer2.Bytes()))
 fmt.Printf("Buffer 2's Length %d and capacity %d \n", len(buffer2.Bytes()), cap(buffer2.Bytes()))
 }

Output :

Before reset : abcdefghijkl

Buffer's Length 12 and capacity 32

After reset :

Buffer's Length 0 and capacity 32

Before truncate(0) : mnopqrstuvwxyz

Buffer 2's Length 14 and capacity 32

After truncate(0) :

Buffer 2's Length 0 and capacity 32

References :

https://www.socketloop.com/references/golang-bufio-reset-function-example

https://www.socketloop.com/references/golang-bytes-buffer-truncate-function-example





By Adam Ng

IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.


Advertisement