Ruby

Leer archivos con Ruby

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

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.

Hola, soy un archivo de texto para demostrar algunos tutoriales de parzibyte.me. Puedo contener cualquier tipo de contenido, por ejemplo, saltos,
    tabulaciones
y cualquier

otra


cosa.
=begin
 Leer archivos por bytes en Ruby

 @author parzibyte
=end
NOMBRE_ARCHIVO = "archivo.txt"
BYTES_POR_LECTURA = 15
# Abrirlo en modo lectura
open(NOMBRE_ARCHIVO, "r") do |archivo|
 # Mientras no se alcance el EOF, sigue leyendo e imprimiendo
 until archivo.eof?
  leido = archivo.read(BYTES_POR_LECTURA)
  puts leido
 end
end

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:

Hola, soy un archivo de texto para demostrar algunos tutoriales de parzibyte.me. Puedo contener cualquier tipo de contenido, por ejemplo, saltos,
    tabulaciones
y cualquier

otra


cosa.
=begin
 Leer todo el contenido de un fichero con Ruby

 @author parzibyte
=end
NOMBRE_ARCHIVO = "archivo.txt"
# Abrirlo en modo lectura
open(NOMBRE_ARCHIVO, "r") do |archivo|
 # Llamar a read sin longitud, para leerlo completo
 contenido = archivo.read()
 puts "El contenido es: #{contenido}"
end

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.

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

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Resetear GOOJPRT PT-210 MTP-II (Impresora térmica)

El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…

2 semanas hace

Proxy Android para impresora térmica ESC POS

Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…

2 semanas hace

Android – Servidor web con servicio en segundo plano

En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…

2 semanas hace

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

2 meses hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

2 meses hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

2 meses hace