Example: How to use ReadAtLeast from IO Package in Golang?
ReadAtLeast reads from r into buf until it has read at least min bytes. It returns specific errors to signal specific cases when the minimum couldn’t be read due to EOF.
Example
package main
import (
"io"
"fmt"
"strings"
)
type Example struct {
ReaderLength int
Minimum int
TextStr string
}
func main() {
examples := []Example{
{10, 5, "Go is a programming language created at Google in 2007."},
{10, 10, "Golang"},
{10, 00, "Robert Griesemer"},
{10, 15, "Jobs, Code, Videos and News for Go hackers."},
}
for _, ex := range examples {
rd := strings.NewReader(ex.TextStr)
buffer := make([]byte, ex.ReaderLength)
bytesRead, err := io.ReadAtLeast(rd, buffer, ex.Minimum)
fmt.Printf("\nLen(buffer)=%d, Min=%d, BytesRead=%d, Error=%v, (%s)\n",ex.ReaderLength, ex.Minimum, bytesRead, err, ex.TextStr)
}
}
Output
Len(buffer)=10, Min=5, BytesRead=10, Error=, (Go is a programming language created at Google in 2007.)
Len(buffer)=10, Min=10, BytesRead=6, Error=unexpected EOF, (Golang)
Len(buffer)=10, Min=0, BytesRead=0, Error=, (Robert Griesemer)
Len(buffer)=10, Min=15, BytesRead=0, Error=short buffer, (Jobs, Code, Videos and News for Go hackers.)
Most Helpful This Week
Pascal triangle in Go Programming Language
How to use WaitGroup to delay execution of the main function until after all goroutines are complete.
Converting Int data type to Float in Go
Defining a type that satisfies an interface in Go Programming Language
Type assertion in Go Programming Language
Unveiling the Potential of Quantum Computing in AI: A Game Changer for Industries