Leer/escribir desde/hacia un archivo en Go
-
Escribir en un archivo usando
WriteString
en Go -
Leer/Escribir desde/hacia un archivo usando
io/ioutil
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>