Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created December 18, 2018 02:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/6b5f2f861b13e022c6d971c815b830d2 to your computer and use it in GitHub Desktop.
Save parzibyte/6b5f2f861b13e022c6d971c815b830d2 to your computer and use it in GitHub Desktop.
Leer contenido de archivo con búfers usando Go created by parzibyte - https://repl.it/@parzibyte/Leer-contenido-de-archivo-con-bufers-usando-Go
Hola, soy un archivo de texto para demostrar algunos tutoriales de parzibyte.me. Puedo contener cualquier tipo de contenido, por ejemplo, saltos,
tabulaciones
y cualquier
otra
cosa.
/*
Leer un archivo de texto en Go, utilizando un
búfer para leerlo por fragmentos o trozos
pequeños
@author parzibyte
*/
package main
import (
"fmt"
"io"
"os"
)
const TamanioBufer = 5 // En bytes
func main() {
nombreArchivo := "archivo.txt"
archivo, err := os.Open(nombreArchivo)
if err != nil {
fmt.Printf("Error abriendo archivo %s: %v", nombreArchivo, err)
}
defer archivo.Close()
bufer := make([]byte, TamanioBufer)
// Ciclo infinito hasta que se detenga dentro
for {
// Nota: bytesLeidos es un entero que indica cuántos bytes hemos leído
bytesLeidos, err := archivo.Read(bufer)
if err != nil {
if err != io.EOF {
fmt.Printf("Error leyendo contenido: %v", err)
}
// ¿Alcanzamos el End Of Line? entonces termina el ciclo
break
}
// Aquí es en donde procesamos los datos
fragmento := string(bufer[:bytesLeidos])
fmt.Printf("Leído este fragmento: %s\n", fragmento)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment