Función io.NewSectionReader() en Golang con ejemplos

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 NewSectionReader() en el lenguaje Go se usa para devolver un SectionReader que lee del lector indicado «r» que comienza en el desplazamiento indicado «off» y termina con el EOF, es decir, el final del archivo después del número «n» dado de bytes Además, esta función se define en el paquete io. Aquí, debe importar el paquete «io» para usar estas funciones.

Sintaxis:

func NewSectionReader(r ReaderAt, off int64, n int64) *SectionReader

Aquí, «r» es el lector desde donde se lee el contenido, «off» es el desplazamiento indicado desde donde comienza la lectura del contenido y «n» es el número de bytes hasta que se lee el contenido.

Valor de retorno: Devuelve un «SectionReader» que lee del lector indicado «r» que comienza en el desplazamiento indicado «off» y termina con el EOF, es decir, el final del archivo después del número «n» de bytes dado.

Los siguientes ejemplos ilustran el uso del método anterior:

Ejemplo 1:

// Golang program to illustrate the usage of
// io.NewSectionReader() function
  
// Including main package
package main
  
// Importing fmt, io, strings, and os
import (
    "fmt"
    "io"
    "os"
    "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, 3, 5)
  
    // Calling Copy method with its parameters
    Reader, err := io.Copy(os.Stdout, r)
  
    // If error is not nil then panics
    if err != nil {
        panic(err)
    }
  
    // Prints output
    fmt.Printf("n: %v\n", Reader)
}

Producción:

ks
n: 3

En el ejemplo anterior, el método Copy() se usa para devolver la salida, y el método de strings NewReader() se usa desde donde se escribe el contenido que se va a leer.

Ejemplo 2:

// Golang program to illustrate the usage of
// io.NewSectionReader() function
  
// Including main package
package main
  
// Importing fmt, io, strings, and os
import (
    "fmt"
    "io"
    "os"
    "strings"
)
  
// Calling main
func main() {
  
    // Defining reader using NewReader method
    reader := strings.NewReader("GeeksforGeeks\nis\na\nCS-Portal.\n")
  
    // Calling NewSectionReader method with its parameters
    r := io.NewSectionReader(reader, 7, 40)
  
    // Calling Copy method with its parameters
    Reader, err := io.Copy(os.Stdout, r)
  
    // If error is not nil then panics
    if err != nil {
        panic(err)
    }
  
    // Prints output
    fmt.Printf("n: %v\n", Reader)
}

Producción:

rGeeks
is
a
CS-Portal.
n: 23

Aquí, el contenido comienza desde el desplazamiento «7» y termina después de que el número de bytes llega a «40». Pero en la salida devuelta aquí, el contenido copiado es de «23» bytes, por lo que «n» es 23.

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *