En el lenguaje Go, los paquetes io proporcionan interfaces fundamentales para las primitivas de E/S. Y su trabajo principal es encerrar las implementaciones en curso de tal rey de los primitivos. La función SectionReader.Read() en el lenguaje Go se usa para devolver el número de bytes leídos por el método NewSectionReader . Este método tiene un búfer como su parámetro. Además, esta función se define en el paquete io. Aquí, debe importar el paquete «io» para usar estas funciones.
Sintaxis:
func (s *SectionReader) Read(p []byte) (n int, err error)
Aquí, «s» es un puntero a SectionReader que devuelve el método NewSectionReader , y «p» es un búfer de la longitud de bytes indicada.
Valor devuelto: Devuelve el número de bytes del contenido devuelto desde el búfer indicado de longitud especificada y también devuelve un error, si lo hay, pero si no se produjo ningún error, se devuelve «nil».
Los siguientes ejemplos ilustran el uso del método anterior:
Ejemplo 1:
// Golang program to illustrate the usage of // io.SectionReader.Read() function // Including main package package main // Importing fmt, io, and strings import ( "fmt" "io" "strings" ) // Calling main func main() { // Defining reader using NewReader method reader := strings.NewReader("Geeks\n") // Calling NewSectionReader method with its parameters r := io.NewSectionReader(reader, 2, 4) // Defining buffer using make keyword buf := make([]byte, 3) // Calling Read method with its parameter n, err := r.Read(buf) // If error is not nil then panics if err != nil { panic(err) } // Prints output fmt.Printf("Content in buffer: %s\n", buf) fmt.Printf("n: %v\n", n) }
Producción:
Content in buffer: eks n: 3
En el ejemplo anterior, el contenido del búfer tiene solo tres bytes, por lo que se devuelve «3» y no se produce ningún error al leer el contenido indicado, por lo que el error es «nulo».
Ejemplo 2:
// Golang program to illustrate the usage of // io.SectionReader.Read() function // Including main package package main // Importing fmt, io, and strings import ( "fmt" "io" "strings" ) // Calling main func main() { // Defining reader using NewReader method reader := strings.NewReader("GeeksforGeeks\nis\na\nCS-Portal.") // Calling NewSectionReader method with its parameters r := io.NewSectionReader(reader, 6, 34) // Defining buffer using make keyword buf := make([]byte, 25) // Calling Read method with its parameter n, err := r.Read(buf) // If error is not nil then panics if err != nil { panic(err) } // Prints output fmt.Printf("Content in buffer: %s\n", buf) fmt.Printf("n: %v\n", n) }
Producción:
panic: EOF goroutine 1 [running]: main.main() /tmp/sandbox125171693/prog.go:31 +0x25a
Aquí, el contenido en el búfer utilizado en el código anterior tiene menos bytes que los indicados, por lo que se genera un error EOF.
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA