Leer el archivo

Leer el archivo
La capacidad de leer archivos es un bloque de construcción para cualquier programa no trivial. Por lo tanto, cualquier programador debe aprender a leer archivos.

Tendrá las habilidades fundamentales para leer el contenido de archivos utilizando el lenguaje de programación GO al final de este artículo.

Abra el archivo para leer

El primer método al leer cualquier archivo es abrirlo. Para abrir un archivo en Go, podemos usar los métodos Open () o OpenFile () desde el paquete OS.

Para simplificar, nos quedaremos con el método Open ().

El siguiente código muestra la sintaxis para abrir un archivo usando el paquete del sistema operativo:

Archivo, err: = OS.Abrir ("nombre de archivo")

Por ejemplo, para abrir un archivo llamado "Hola.txt ”En el directorio de trabajo actual, podemos hacer:

Archivo, err: = OS.Abierto ("Hola.TXT")

También es bueno cerrar el archivo después de completar las operaciones requeridas. Podemos cerrar el archivo utilizando el método de cierre como:

aplazar el archivo.Cerca()

Asegúrese de que cualquier operación que realice en el archivo se encuentra bajo el método Open () y Close ().

Archivo de lectura de Golang.

Podemos usar varios métodos y técnicas para leer un archivo en Go. Discutamos algunos comunes y más eficientes.

Leer un archivo completo.

El método más común y simplista para leer archivos es usar el método de readfile del paquete Ioutil. Este método leerá todo el archivo y lo almacenará como una cadena grande.

A pesar de su naturaleza simplista, este método no es muy eficiente cuando se trata de trabajar con archivos grandes.

Usemos un ejemplo para ilustrar trabajar con el método readfile ().

Comience creando un archivo llamado "Hola.txt "en su directorio de trabajo actual.

$ touch hola.TXT

A continuación, edite el archivo con su editor de texto y agregue lo siguiente:

$ vim hola.TXT
> Hola desde hola.TXT

Cierra y guarda el archivo.

Ahora podemos usar el método ReadFile () para leer el contenido de todo el archivo como:

paquete principal
importar (
"FMT"
"Io/Ioutil"
"registro"
)
func Main ()
datos, err: = ioutil.Readfile ("Hola.TXT")
Si err != nulo
registro.Fatal (err)

fmt.Println (cadena (datos))

El programa anterior leerá el archivo e imprimirá su contenido en la consola. Tenga en cuenta que necesitamos convertir los datos en una cadena antes de imprimirlos. De lo contrario, obtendrá una porción de personajes.

Lea el archivo por fragmentos

Otra forma de leer un archivo en Go es leerlo en trozos. Esto significa que no cargamos todo el contenido en la memoria, sino que cortamos secciones pequeñas.

Esta puede ser una muy buena técnica cuando se trabaja con archivos grandes.

Por ejemplo:

paquete principal
importar (
"Bufio"
"FMT"
"IO"
"registro"
"OS"
)
func Main ()
Archivo, err: = OS.Abierto ("Hola.TXT")
Si err != nulo
registro.Fatal (err)

aplazar el archivo.Cerca()
lector: = bufio.NewReader (archivo)
buffer: = make ([] byte, 8)
para
Leer, ERR: = Lector.Leer (búfer)
Si err != nulo
Si err != IO.EOF
registro.Fatal (err)

romper

fmt.Println (string (buffer [: read]))

En el ejemplo anterior, leemos el archivo en trozos de 8 bytes. Leemos los datos en el búfer utilizando el método de lectura utilizando un bucle para un bucle. Finalmente, imprimimos el búfer de matriz usando el método println ().

Los fragmentos de datos de datos resultantes son los que se muestra:

$ Go Run
Hola FR
om la h
ello.TXT
archivo

Leer Archivo Línea por línea

También podemos leer archivos line por línea usando el paquete Bufio. Un ejemplo es como se muestra a continuación:

paquete principal
importar (
"Bufio"
"FMT"
"registro"
"OS"
)
func Main ()
Archivo, err: = OS.Abierto ("Hola.TXT")
Si err != nulo
registro.Fatal (err)

aplazar el archivo.Cerca()
escáner: = bufio.Newscanner (archivo)
para escáner.Scan ()
fmt.Println (escáner.Texto())

Si err: = Scanner.Errar(); errar != nulo
registro.Fatal (err)

El escáner escaneará la línea e imprimirá una nueva línea cada vez que encuentre el carácter \ n.

Leer Archivo Palabra por palabra

También podemos usar el método Scanword del paquete Bufio para leer el archivo Word por Word. Un código de ejemplo es como se muestra:

paquete principal
importar (
"Bufio"
"FMT"
"registro"
"OS"
)
func Main ()
Archivo, err: = OS.Abierto ("Hola.TXT")
Si err != nulo
registro.Fatal (err)

aplazar el archivo.Cerca()
escáner: = bufio.Newscanner (archivo)
escáner.División (bufio.Palabras de escaneo)
para escáner.Scan ()
fmt.Println (escáner.Texto())

Si err: = Scanner.Errar(); errar != nulo
registro.Fatal (err)

En el ejemplo anterior, escaneamos el archivo Word by Word utilizando las palabras de escaneo proporcionadas por el paquete Bufio.

La salida resultante es como:

Hola
de
el
Hola.TXT
archivo

Conclusión

Esta guía discute métodos y técnicas comunes para leer archivos en el lenguaje de programación GO.

Sigue codificando!!