Ver destacados

Cómo leer y escribir ficheros en Ruby

En este tutorial verás cómo leer y escribir ficheros en Ruby mediante ejemplos prácticos.
Escrito por
12.2K Visitas  |  Publicado jun 30 2016 12:38
Favorito
Compartir
Comparte esta pagina a tus Amigos y Contactos usando las siguientes Redes Sociales


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 
end
La 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  
end
Como 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 utilizar el acceso aleatorio con el método seek de la claseIO.

¿Te ayudó este Tutorial?

Ayuda a mejorar este Tutorial!
¿Quieres ayudarnos a mejorar este tutorial más? Puedes enviar tu Revisión con los cambios que considere útiles. Ya hay 0 usuario que han contribuido en este tutorial al enviar sus Revisiones. ¡Puedes ser el próximo!