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.
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:
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/