Función io.Copy() 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 Copiar() en el lenguaje Go se usa para copiar desde el src indicado, es decir, la fuente al dst , es decir, el destino hasta que se alcance el EOF, es decir, el final del archivo en src o se produzca un error. Aquí, cuando la interfaz WriterTo implementa src , la copia se implementa mediante una llamada a src.WriteTo(dst). de lo contrario, si dst es implementado por ReaderFromentonces la copia se implementa mediante una llamada a dst.ReadFrom(src). Además, esta función se define en el paquete io. Aquí, debe importar el paquete «io» para usar estas funciones.

Sintaxis:

func Copy(dst Writer, src Reader) (written int64, err error)

Aquí, «dst» es el destino y «src» es la fuente desde donde se copia el contenido al destino.
Valor devuelto: Devuelve el número total de bytes de tipo int64 que se copian en el «dst» y también devuelve el primer error que se enfrenta al copiar de src a dst, si lo hay. Y si no hay ningún error en la copia, se devuelve «nil».

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

Ejemplo 1:

// Golang program to illustrate the usage of
// io.Copy() function
  
// Including main package
package main
  
// Importing fmt, io, os, and strings
import (
    "fmt"
    "io"
    "os"
    "strings"
)
  
// Calling main
func main() {
  
    // Defining source
    src := strings.NewReader("GeeksforGeeks\n")
  
    // Defining destination using Stdout
    dst := os.Stdout
  
    // Calling Copy method with its parameters
    bytes, err := io.Copy(dst, src)
  
    // If error is not nil then panics
    if err != nil {
        panic(err)
    }
  
    // Prints output
    fmt.Printf("The number of bytes are: %d\n", bytes)
}

Producción:

GeeksforGeeks
The number of bytes are: 14

Ejemplo 2:

// Golang program to illustrate the usage of
// io.Copy() function
  
// Including main package
package main
  
// Importing fmt, io, os, and strings
import (
    "fmt"
    "io"
    "os"
    "strings"
)
  
// Calling main
func main() {
  
    // Defining source
    src := strings.NewReader("Nidhi: F\nRahul: M\nNisha: F\n")
  
    // Defining destination using Stdout
    dst := os.Stdout
  
    // Calling Copy method with its parameters
    bytes, err := io.Copy(dst, src)
  
    // If error is not nil then panics
    if err != nil {
        panic(err)
    }
  
    // Prints output
    fmt.Printf("The number of bytes are: %d\n", bytes)
}

Producción:

Nidhi: F
Rahul: M
Nisha: F
The number of bytes are: 27

Aquí, en el ejemplo anterior, se usa el método de strings NewReader() desde donde se lee el contenido que se va a copiar. Y «Stdout» se usa aquí para crear un descriptor de archivo predeterminado donde se escribe el contenido copiado.

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 *