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
Tutorials
+14.8k Golang : Get sub string example
+5.8k Mac OSX : Find large files by size
+18.3k Golang : Check if os.Stdin input data is piped or from terminal
+4.5k How to check with curl if my website or the asset is gzipped ?
+30.5k Golang : Copy directory - including sub-directories and files
+6.9k Golang : How to feed or take banana with Gorilla Web Toolkit Session package
+5.9k Golang : Normalize email to prevent multiple signups example
+5.7k Golang : Warp text string by number of characters or runes example
+21.1k Golang : How to read JPG(JPEG), GIF and PNG files ?
+29.6k error: trying to remove "yum", which is protected
+5.5k Golang : How to validate ISBN?
+16.9k Golang : Iterating Elements Over A List