Crear un archivo de texto en Go

Crear un archivo de texto en Go es sencillo, y puedes hacerlo con sólo algunas líneas de código, en el ejemplo que te mostramos hemos agregamos código para verificar que cada paso en la escritura del texto se esté realizando de forma correcta.

» Ver más ejemplos de Golang

package main

import (
	"fmt"
	"os"
)

//decodigo.com

var path = "prueba.txt"

func main() {
	crearArchivo()
	escribeArchivo()
}

func crearArchivo() {
	//Verifica que el archivo existe
	var _, err = os.Stat(path)

	//Crea el archivo si no existe
	if os.IsNotExist(err) {
		var file, err = os.Create(path)
		if existeError(err) {
			return
		}
		defer file.Close()
	}

	fmt.Println("Archivo creado exitosamente", path)
}

func escribeArchivo() {
	// Abre archivo usando permisos READ & WRITE
	var file, err = os.OpenFile(path, os.O_RDWR, 0644)
	if existeError(err) {
		return
	}
	defer file.Close()

	// Escribe algo de texto linea por linea
	_, err = file.WriteString("Hola \n")
	if existeError(err) {
		return
	}
	_, err = file.WriteString("Mundo \n")
	if existeError(err) {
		return
	}

	// Salva los cambios
	err = file.Sync()
	if existeError(err) {
		return
	}

	fmt.Println("Archivo actualizado existosamente.")
}

func existeError(err error) bool {
	if err != nil {
		fmt.Println(err.Error())
	}

	return (err != nil)
}

Tenemos dos bloques de interés en este código, el primero con la función crearArchivo(), con la que verificamos si el archivo existe antes de crearlo. Posteriormente está la función que genera el contenido del archivo, escribeArchivo(). Como mencionamos anteriormente, en la creación de archivos de texto siempre es necesario verificar que en cada parte del proceso se esté generando o no un error, y en caso de ocurrir alguno notificarlo al usuario. Esto lo hacemos con la función existeError().

Al ejecutar el código el resultado será un archivo de texto como el siguiente:

Crear archivo de texto en Go

Al crear un archivo de texto en Go o en cualquier lenguaje, debes tener en cuenta que para escribir en una ruta o carpeta es necesario contar con los permisos necesarios por el sistema operativo. Otra cosa importante es que debes liberar los recursos que creas o utilizas una vez que has terminado de usarlos. En el ejemplo nos aseguramos de liberar el recurso con la sentencia defer file.Close().

Esperamos que el ejemplo te sea útil.

Ver documentación: https://pkg.go.dev/os

Más información en inglés: https://geekole.com/write-a-text-file-in-golang/