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 TeeReader() en el lenguaje Go se usa para devolver un «Lector» que lee desde la «r» indicada y luego lo escribe en la «w» indicada. Y aquí todas las lecturas que se ejecutan a través de la «r» indicada se comparan con las escrituras equivalentes a la «w» indicada. Este método no requiere ningún almacenamiento en búfer interno y la escritura se completa una vez que se completa la lectura. Además, esta función se define en el paquete io. Aquí, debe importar el paquete «io» para usar estas funciones.
Sintaxis:
func TeeReader(r Reader, w Writer) Reader
Aquí, “r” es el Lector declarado y “w” es el Escritor declarado.
Valor de retorno: Devuelve un «Lector» que lee de la «r» indicada y luego lo escribe en la «w» dada. Sin embargo, cualquier error que se produzca al escribir el contenido se devuelve como un error de lectura.
Los siguientes ejemplos ilustran el uso del método anterior:
Ejemplo 1:
// Golang program to illustrate the usage of // io.TeeReader() function // Including main package package main // Importing fmt, io, strings, bytes, and os import ( "bytes" "fmt" "io" "os" "strings" ) // Calling main func main() { // Defining reader using NewReader method reader := strings.NewReader("GfG\n") // Defining buffer var buf bytes.Buffer // Calling TeeReader method with its parameters r := io.TeeReader(reader, &buf) // 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:
GfG n: 4
En el ejemplo anterior, el método Copy() se usa para devolver el «Lector», el método de strings NewReader() se usa desde donde se escribe el contenido que se va a leer y aquí también se usa un búfer externo.
Ejemplo 2:
// Golang program to illustrate the usage of // io.TeeReader() function // Including main package package main // Importing fmt, io, strings, bytes, and os import ( "bytes" "fmt" "io" "os" "strings" ) // Calling main func main() { // Defining reader using NewReader method reader := strings.NewReader("GeeksforGeeks\nis\na\nCS-Portal.\n") // Defining buffer var buf bytes.Buffer // Calling TeeReader method with its parameters r := io.TeeReader(reader, &buf) // 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:
GeeksforGeeks is a CS-Portal. n: 30
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA