Ruby File I/O

Ruby File I/O
Trabajar con archivos es prácticamente un requisito para cualquier desarrollador. En la mayoría de los casos, si no está guardando datos en una base de datos, probablemente los esté guardando en un archivo.

Esta guía le mostrará cómo usar métodos de E/S de Ruby para abrir, leer, escribir y crear nuevos archivos.

Comencemos en los conceptos básicos de entrada y salida en Ruby

E/S básica

Los métodos de E/S más básicos en Ruby son los que usamos para imprimir texto en la pantalla.

Pone

El método PUTS es probablemente el método de E/S más común.

Para imprimir algo en la pantalla, simplemente:

my_var = 100
pone my_var

El comando PUTS imprimirá el valor almacenado en la variable referenciada y agregará una nueva línea al final.

Imprimir

El método de impresión es similar al PUTS, pero no agrega una nueva línea. Deja el cursor en la misma línea.

Imprimir "Hello World!"

Putc

Otro método de E/S básico común es el método PUTC. Funciona de manera similar al método Puts e imprima, pero imprime un carácter a la vez.

Por ejemplo:

my_var = "Hola mundo!"
putc my_var

Lo anterior debe imprimir el personaje 'H.'

Obtiene

El método gets, por otro lado, obtiene la entrada del usuario utilizando la transmisión Stdin.

pone "ingrese a su edad:"
edad = obtiene
pone "Eres #edad años"

E/S de archivo

Aunque es útil comprender cómo trabajar con el estándar dentro y fuera, puede ser muy limitante cuando necesita datos persistentes.

En tal caso, podemos usar la entrada y salida del archivo para leer y escribir en archivos.

Archivo.Nuevo()

El primer método útil cuando se trabaja con archivos es el nuevo método. Esto crea un nuevo objeto de archivo con el nombre de archivo especificado y el modo.

La sintaxis general es:

F = archivo.nuevo ('nombre de archivo', 'modo')

El nombre de archivo puede ser cualquier nombre y extensión.

Ruby admite varios modos de archivo. Éstas incluyen:

  1. riñonal - Modo de solo lectura
  2. w - Modo de solo escritura
  3. riñonal+ - Modo de lectura-escritura
  4. w+ Modo de lectura-escritura
  5. a - Escribir modo y agregar nuevos datos si el archivo existe; Si no, cree un archivo y agregue los datos.
  6. a+ - Igual que "A" pero usa el modo de lectura-escritura.

Por ejemplo, para crear un nuevo archivo que no exista:

F = archivo.nuevo nuevo.txt "," a+")
F.syswrite ("Me han creado recientemente")
F.cerca()

En el ejemplo anterior, creamos un nuevo objeto de archivo con el nombre nuevo.txt y el modo de lectura-escritura. Dado que el archivo no existe, se crea automáticamente.

En la siguiente línea, escribimos en el archivo utilizando el método syswrite y, finalmente, cierre el archivo.

$ Cat NUEVO.TXT
Me han creado recientemente

Archivo.Abierto()

Puede usar el método abierto para abrir un archivo. Una vez que abra un archivo, puede leerlo o escribirle.

Por ejemplo:

F = archivo.Abierto ("Nuevo.TXT")
contenido = F.leer
Ponga contenido

En el ejemplo anterior, utilizamos el método abierto para abrir un archivo existente en el directorio de trabajo actual.

Una vez abierto, podemos leer el contenido del archivo.

Observe que no especificamos el modo al abrir el archivo para leer porque está configurado para leer cuando no se especifica.

Para escribir en un archivo, debe especificar el modo como escritura o lectura-escritura como se muestra en el ejemplo a continuación:

F = archivo.Abierto ("Nuevo.txt "," r+")
F.escribir ("esta es otra línea")
F.cerca()

En el ejemplo anterior, especificamos el modo como lectura-escritura mientras estamos escribiendo en el archivo.

Archivo.rebautizar()

Además de leer y escribir en un archivo, Ruby le permite realizar otras operaciones, incluido el cambio de nombre del archivo utilizando el método de cambio de nombre.

Ejemplo:

F = archivo.Cambiar el nombre ("Nuevo.txt "," renombrado.TXT")

El método anterior debe cambiar el nombre del nuevo.archivo txt a renombrado.TXT.

Archivo.Borrar()

Para eliminar un archivo, puede usar el método Eliminar y especificar el nombre de archivo como argumento. Por ejemplo:

pone "#archivo.eliminar ("renombrado.txt ") eliminado!"

Archivo.dirname ()

El método DirName le permite obtener la ruta del archivo sin incluir el nombre de archivo.

Por ejemplo:

F = archivo.dirname ("/var/log/lastlog")
pone F

Esto debe mostrar la ruta completa al directorio donde se encuentra el archivo.

# Ruby Fileio.RB
/var/log

Archivo.existe?

Para verificar si existe un archivo, use el archivo.existe? método. Devuelve un verdadero booleano si el valor existe y falso si es lo contrario.

Ponga el archivo.existe?("/etc/passwd")
verdadero

E/S del directorio

Si desea trabajar con directorios en Ruby, puede usar la clase Dir que contiene métodos para tales operaciones.

Incluyen:

  1. pwd () - Devuelve el directorio de trabajo actual
  2. vacío?("/Dirpath") - Verifica si un directorio está vacío
  3. mkdir ("/dirpath") - Crea un directorio con el nombre especificado.
  4. Eliminar ("/dirpath") - Elimina el directorio especificado
  5. chdir ("/dirpath") - Navegue a la ruta de directorio especificada
  6. Entradas ("/dirpath") - Enumera todos los archivos en el directorio.

Conclusión

Este tutorial le ha mostrado cómo usar varias operaciones de entrada/salida de Ruby. Es bueno tener en cuenta que hay otras operaciones que puede realizar más allá de las discutidas en este tutorial. Considere la documentación del archivo y la clase Dir para obtener más información.