En este tutorial voy a explicar dos maneras de leer archivos con Ruby. La primera forma es leer un archivo en pedazos; por ejemplo, leer 20 bytes cada vez. Por otro lado, la segunda manera muestra cómo leer todo el contenido de un archivo sin importar su tamaño.

Leer archivos en Ruby. Leer determinados bytes a la vez o leer todo el contenido

Leer archivos en Ruby. Leer determinados bytes a la vez o leer todo el contenido

La diferencia entre estos dos tipos de lectura es que el primero es más eficaz para archivos grandes, sobre todo cuando no hay mucha RAM disponible. La segunda forma de leer pone todo el contenido en la RAM.

Pero bueno, veamos el tutorial y tú sabrás cuál te conviene dependiendo del escenario.

Leer archivo por bytes

Este es el enfoque en donde se lee solamente un pedazo del archivo. Por cierto, aquí se ve cómo leer un archivo de texto pero esto funciona para todo tipo de archivo, sin importar extensión o composición.

Para leer un archivo usamos open, indicamos el nombre del archivo y la forma de apertura (solamente es lectura). Eso devuelve el archivo, más tarde hacemos un ciclo en donde leemos mientras no se alcance el EOF que marca el final del archivo.

Por cierto, lo importante para leerlo por pedazos está al llamar a read. Ahí le pasamos la constante que indica cuántos bytes leer en cada iteración.

Leer todo el contenido de un archivo con Ruby

Ahora veamos cómo leer todo el contenido en una sola llamada, usando Ruby. Ya dije que esto no es recomendado para archivos muy grandes, pero igual y se da la necesidad de hacerlo de esta manera.

En fin, aquí el código, el cual es casi el mismo que el de arriba:

Casi lo mismo, pero ahora al llamar a read no le pasamos el tamaño.

Probar ejercicios

Puedes descargar ambos archivos y ejecutarlos con:

ruby archivo.rb

Antes de ello recuerda instalar Ruby. Como siempre, si quieres puedes ejecutar los ejercicios directamente en este post, abajo dejo los ejemplos.

Leer archivo por bytes

Leer todo el contenido de un archivo a la vez

Eso es todo. Si quieres aprender más sobre Ruby, haz click aquí.

Estoy interesado en trabajar contigo de manera remota para llevar tu idea a la realidad, formar parte de tu equipo de desarrolladores, ayudarte con tu tarea, dar asesorías y todo lo relacionado con tecnología y programación. Contáctame para más información
No te vayas sin seguirme en Twitter, Facebook y GitHub
Si tienes dudas déjalas en un comentario, pero asegúrate de seguirme antes como agradecimiento (no te cuesta nada y me ayudas mucho)


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB. Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron. Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scripts La plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C. Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: