【发布时间】:2011-03-20 16:48:52
【问题描述】:
Ruby 中是否有一个内置函数可以在不使用任何循环的情况下读取整个文件?到目前为止,我只遇到过以块(行或字符)读取的方法。
【问题讨论】:
-
对于它的价值,这是人们经常想要但并不真正需要的东西。 (如果文件非常大,当文件 slurping 吞噬所有可用内存时,您可能会感到非常意外。)您最终想要完成什么?
-
我发现这对于处理不是日常格式的文件非常有帮助。我正在阅读一个 IBM437 编码的文件,需要在奇怪的字符处破坏文件,以将有价值的数据与我不需要的东西分开。为此,阅读整个文件然后在它们应该在的位置创建我自己的换行符是有意义的。否则我会传入每一行或每个字符。相反,我可以简单地使用它来读取文件,然后使用 split 将文件分解为可打印字符的字符串,然后使用块来确定我需要的数据集。