Anteriormente vimos cómo leer archivos con Ruby, ahora veremos otra operación con archivos y es la escritura de los mismos.
Con Ruby, al igual que hicimos cuando leímos archivos, podemos escribir datos en un archivo ya sea por pedazos o en una sola llamada.
Se me ocurre que se podría usar la escritura en archivos para guardar algunos datos si no necesitamos la potencia de SQL o una base de datos.
Escribir determinados bytes a un archivo a la vez
Veamos el enfoque en donde no escribimos todo el contenido, sino que vamos poco a poco hasta terminar de transferir todo.
En el ejemplo escribimos cada carácter de una cadena dentro del archivo, dejo el código y lo explico abajo:
Hola, mundo. Soy una cadena :)
cadena = "Hola, mundo. Soy una cadena :)"
NOMBRE_ARCHIVO = "escrito.txt"
open(NOMBRE_ARCHIVO, "w") do |archivo|
cadena.each_char do |caracter|
archivo.write(caracter)
end
end
Para abrir el archivo se utiliza open
, pero ahora indicamos que vamos a escribir con el modo w. Este modo sobrescribe datos si ya existen, así que hay que tener cuidado. En caso de que quisiéramos que se añadieran, usaríamos el modo a.
Cada llamada a write
escribe datos, eso lo podemos llamar las veces que sea necesario, ya sea dentro de un ciclo o desde cualquier otro lugar.
Escribir una cadena en archivo
Ahora veamos en donde se escribe a la vez. Es lo mismo de arriba pero sin ir carácter por carácter:
Hola, mundo. Soy una cadena :)
cadena = "Hola, mundo. Soy una cadena :)"
NOMBRE_ARCHIVO = "escrito.txt"
open(NOMBRE_ARCHIVO, "w") do |archivo|
archivo.write(cadena)
end
No hace falta explicar, pues el código se explica por sí mismo. Eso sí, recuerda que si quieres agregar datos en lugar de remplazar debes abrir el archivo con el modificador a.
Probar ejemplos
Puedes descargar los ejemplos de código y ejecutarlos con ruby archivo.rb
, solamente recuerda instalar Ruby antes.