This question already has an answer here:
I have an io.Reader
that doesn't require closing:
stringReader := strings.NewReader("shiny!")
And I want to pass it to a method that receives an io.ReadCloser
func readAndClose(source io.ReadCloser) {
...
}
How do I turn the io.Reader
into a io.ReadCloser
without specially creating a struct that implements the Close
method?
</div>
If you're certain that your io.Reader
doesn't require any actual closing, you can wrap it with an ioutil.NopCloser
.
From the godoc:
NopCloser returns a ReadCloser with a no-op Close method wrapping the provided Reader r.
So we can apply it like:
stringReader := strings.NewReader("shiny!")
stringReadCloser := ioutil.NopCloser(stringReader)