Golang : Fix cannot convert buffer (type *bytes.Buffer) to type string error
Encountered these similar error messages while working on the previous tutorials on how to reset buffer and writing to http.ResponseWriter :
cannot convert buffer (type *bytes.Buffer) to type string
and
cannot use buffer (type *bytes.Buffer) as type []byte in argument to w.Write
1. Cannot convert buffer (type *bytes.Buffer) to type string solution
the error message is generated because of attempt to convert the bytes.Buffer directly to string type with string()
function.
fmt.Println(string(buffer))
to fix this error. Use buffer.String()
or string(buffer.Bytes())
package main
import (
"bytes"
"fmt"
)
func main() {
buffer := bytes.NewBuffer([]byte("Hello World!"))
fmt.Println(buffer.String())
// or
// fmt.Println(string(buffer.Bytes())
}
2. Cannot use buffer (type *bytes.Buffer) as type []byte in argument to w.Write solution
Writing buffer directly to http.ResponseWriter will cause error
func SayHelloWorld(w http.ResponseWriter, r *http.Request) {
buffer := bytes.NewBuffer([]byte("Hello World!"))
w.Write(buffer) // <--- wrong!
}
the solution is to use
w.Write(buffer.Bytes())
or use Buffer.WriteTo() function.
func SayHelloWorld(w http.ResponseWriter, r *http.Request) {
buffer := bytes.NewBuffer([]byte("Hello World!"))
buffer.WriteTo(w)
}
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
+30.4k Golang : Download file example
+17k Golang : Check if IP address is version 4 or 6
+5k Golang : Pad file extension automagically
+8.9k Golang : Write multiple lines or divide string into multiple lines
+16.6k Golang : Capture stdout of a child process and act according to the result
+7.2k Gogland : Single File versus Go Application Run Configurations
+5.8k Golang : Get missing location after unmarshal binary and gob decode time.
+9k Golang : Play .WAV file from command line
+13k Golang : Generate Code128 barcode
+10.4k Golang : Get currencies exchange rates example
+10.6k Golang : How to transmit update file to client by HTTP request example
+10.8k Golang : Calculate Relative Strength Index(RSI) example