En este breve tutorial vamos a ver cómo leer y escribir en ficheros usando el lenguaje de programación Ruby. Para practicar vamos a poner unos ejemplos sencillos. Si te interesa ver ejemplos de lo que se va a explicar hoy u otras cosas relacionadas con Ruby puedes visitar su documentación.
Primer ejemplo
En este caso se procede a hacer un copiador, el que se lee el código del programa (ficheros.rb) y se copia en otro archivo (copiaFicheros.rb).
File.open('ficheros.rb', 'r') do |fichero1| File.open('copiaFicheros.rb', 'w') do |fichero2| while linea = fichero1.gets fichero2.puts(linea) end fichero2.puts("#fin de la copia") end endLa primera línea abre el fichero del que se lee (r - read) y tendrá el nombre fichero1, en la segunda abrimos el fichero donde se escribe (w - write), ten en cuenta que se borrara todo lo que haya en el fichero copiaFicheros.rb, si quieres que escriba a continuación del texto que tenga cambia la w por (a – append). Tenemos un bucle que ira leyendo una línea del fichero1 y escribiéndola en el fichero2, cuándo ya no haya más que leer se escribe una línea para el fichero “copia".
Nota
Si quieres abrir un fichero para lectura y escritura utiliza r+.
Segundo ejemplo
En este ejemplo vamos a mostrar los ficheros que encontremos desde el directorio donde ejecutamos el código, por eso verás Find.find('./'), que hace una búsqueda descendente desde el directorio que recibe como parámetro, si quisieras otro directorio desde el que partir susstituye el ./.
require 'find' Find.find('./') do |f| if File.file?(f) then puts f end endComo primer paso importamos find, que lo necesitamos. La segunda línea de código que ves es la explicada anteriormente. En este código nos interesa solo mostrar los ficheros y no los directorios, por eso en la tercera línea se comprueba si es un fichero y si es así lo pintamos en la cuarta. A continuación os dejo una salida de lanzar el código:
Que otros tipo de lectura/escritura podemos hacer y que no se ven en este tutorial:
- Podemos guardar y cargar objetos (marshalling).