Leer/escribir desde/hacia un archivo en Go

Jay Singh 30 enero 2023
  1. Escribir en un archivo usando WriteString en Go
  2. Leer/Escribir desde/hacia un archivo usando io/ioutil en Go
Leer/escribir desde/hacia un archivo en Go

Los datos se pueden guardar en un archivo, lo que le da estructura y permite conservarlos de manera permanente o temporal, según el medio de almacenamiento.

El trabajo programático con un archivo incluye la obtención de metadatos, la creación de nuevos archivos y la lectura y escritura de datos hacia y desde un formato de archivo en la estructura de datos interna de un programa.

La biblioteca integrada de Go brinda un excelente soporte para actividades relacionadas con archivos, como crear, leer/escribir, renombrar, mover y copiar un archivo, y recopilar su información de metadatos, entre otras cosas.

Este tutorial demostrará cómo leer/escribir desde/hacia un archivo en Go.

Escribir en un archivo usando WriteString en Go

En este ejemplo, la acción de escritura de archivos implica escribir una cadena en un archivo. Este es un procedimiento fácil de seguir.

El siguiente código generará un archivo llamado file.txt en el directorio del programa. Luego, el texto Hola, ¿cómo estás? se puede encontrar en el archivo después de abrirlo con cualquier editor de texto.

Echemos un vistazo al código fuente a continuación.

package main

import (
    "fmt"
    "os"
)

func main() {
    f, err := os.Create("file.txt")
    if err != nil {
    fmt.Println(err)
        return
    }
    l, err := f.WriteString("Hello, How are you?")
    if err != nil {
        fmt.Println(err)
        f.Close()
        return
    }
    fmt.Println(l, "bytes written successfully")
    err = f.Close()
    if err != nil {
        fmt.Println(err)
        return
    }
}

Producción :

19 bytes written successfully

Leer/Escribir desde/hacia un archivo usando io/ioutil en Go

El método WriteString escribe en un archivo, mientras que la función ReadFile lee el contenido de un archivo de texto en el programa a continuación. Si file.txt no existe, la aplicación lo creará o lo truncará si existe.

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "os"
)

func CreateFile() {
    file, err := os.Create("file.txt")
    if err != nil {
        log.Fatalf("failed creating file: %s", err)
    }
    defer file.Close()

    len, err := file.WriteString("Hello, How are you?.")

    if err != nil {
        log.Fatalf("failed writing to file: %s", err)
    }
    fmt.Printf("\nLength: %d bytes", len)
    fmt.Printf("\nFile Name: %s", file.Name())
}

func ReadFile() {
    data, err := ioutil.ReadFile("file.txt")
    if err != nil {
        log.Panicf("failed reading data from file: %s", err)
    }
    fmt.Printf("\nLength: %d bytes", len(data))
    fmt.Printf("\nData: %s", data)
    fmt.Printf("\nError: %v", err)
}

func main() {
    fmt.Printf("//// Create a file and Write the content ////\n")
    CreateFile()

    fmt.Printf("\n\n //// Read file //// \n")
    ReadFile()
}

Producción :

//// Create a file and Write the content ////

Length: 20 bytes
File Name: file.txt

 //// Read file ////

Length: 20 bytes
Data: Hello, How are you?.
Error: <nil>

Artículo relacionado - Go File