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).
Vous devez vous connecter pour publier un commentaire.
Ce sujet
IO.read()
?Edit:
IO.read()
, comme un bonus supplémentaire, ferme le fichier pour vous.IO.lire() est ce que vous cherchez.
Fichier est une sous-classe de IO, de sorte que vous pouvez simplement utiliser:
Ne pouvez pas obtenir plus intuitif que cela.