Cómo leer un archivo completo en Ruby?


¿Hay una función incorporada en Ruby para leer todo el archivo sin usar ningún bucle? Hasta ahora, solo he encontrado métodos que se leen en trozos (línea o carácter).

 56
Author: Shubham, 2010-07-25

3 answers

IO.read("filename")

O

File.read("filename")
 82
Author: sluukkonen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-27 10:57:06
File.readlines("filename")

Este es también un gran método para leer todo desde un archivo y romper la división en retornos de carro. El retorno es un Array con una línea por elemento.

 18
Author: Nick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-25 11:40:46

Por favor, ignore el consejo que dice "Nunca debe sorber (que es el término molesto para esto) un archivo". A veces esto es algo muy útil y sensato.

Supongamos que está leyendo un archivo repetidamente : es muy probable que leer el archivo en una matriz sea una optimización sensata sobre leer el archivo línea por línea, incluso teniendo en cuenta que las o/s almacenarán el archivo en caché.

 5
Author: Graham Nicholls,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-16 14:31:45