【发布时间】:2011-09-22 06:26:31
【问题描述】:
我相信这很容易;我只是无法立即从 Google 中找到答案。
我知道我可以做到(对吗?):
text = ""
File.open(path).each_line do |line|
text += line
end
# Do something with text
但这似乎有点过分,不是吗?还是在 Ruby 中这样做?
【问题讨论】:
-
警告:将文件读入内存,也就是 slurping,存在可扩展性问题。 Ruby 以及 Perl 和其他语言可以逐行读取文件,其速度几乎与读取、拆分和循环文件一样快。
-
@the Tin Man:这是个好建议,我感谢你。这个问题是不久前提出的,所以我可能记错了;但我相信我当时的意图是对文件的文本进行一些多行正则表达式匹配,所以我确实需要内存中的整个内容(即,我不只是打算逐行阅读)。