Ce qui est une façon raisonnable de lire un fichier texte entier comme une seule chaîne de caractères?

Je suis sûr que c'est facile; je n'arrivais pas à trouver la réponse immédiatement de Google.

Je sais que je pourrais le faire (à droite?):

text = ""
File.open(path).each_line do |line|
    text += line
end

# Do something with text

Mais qui semble un peu excessif, n'est-ce pas? Ou est-ce la façon dont on le ferait en Ruby?

  • Mise en garde: la Lecture du fichier en mémoire, AKA aspirer, a des problèmes d'évolutivité. Ruby, avec Perl et d'autres langues, peut lire un fichier ligne par ligne presque aussi vite que possible la lecture alors du fractionnement et de la boucle à travers elle.
  • Homme de fer-blanc: C'est un bon conseil, et je vous en remercie. Cette question a été posée tout à l'heure, donc je pourrais être se souvenir de mal; mais je crois que mon intention était à l'époque à faire certains multi-ligne regex d'appariement sur le texte du fichier, donc je n'ai besoin de toute la chose en mémoire (c'est à dire, je n'étais pas simplement de la planification à la lire ligne par ligne).
InformationsquelleAutor Dan Tao | 2011-06-24