如何在Ruby中读取整个文件?

Shu*_*ham 63 ruby file

Ruby中是否有内置函数可以在不使用任何循环的情况下读取整个文件?到目前为止,我只遇到了以块(行或字符)读取的方法.

slu*_*nen 94

IO.read("filename")
Run Code Online (Sandbox Code Playgroud)

要么

File.read("filename")
Run Code Online (Sandbox Code Playgroud)

  • @MartinKonecny因为`File :: read`实际上是从`IO :: read`继承的 - 它们都完全相同,因为`File`扩展了`IO`. (4认同)
  • 出于好奇,为什么我在这里找不到这个功能:http://www.ruby-doc.org/core-2.1.2/File.html (2认同)

Nic*_*ick 19

File.readlines("filename")
Run Code Online (Sandbox Code Playgroud)

这也是从文件中读取所有内容并在回车符上拆分拆分的好方法.返回是一个Array,每个元素有一行.

  • 更具体地说,`readlines`拆分内部变量`$ /`,默认为"\n".但是,您可以暂时重置`$ /`,并将文件读取为以其他方式分隔的块. (11认同)

Gra*_*lls 6

请忽略建议"你永远不应该啜饮(这是令人讨厌的术语)文件".有时这是一个非常有用,明智的事情.

假设您正在重复读取文件:即使考虑到o/s将缓存文件,很有可能将文件读入数组是逐行读取文件的合理优化.

  • 这并没有提供问题的答案.要批评或要求作者澄清,请在帖子下方留言 - 您可以随时评论自己的帖子,一旦您有足够的[声誉](http://stackoverflow.com/help/whats-reputation),您将能够[评论任何帖子](http://stackoverflow.com/help/privileges/comment). - [来自评论](/ review/low-quality-posts/10916920) (2认同)
  • 对不起,但根本没有兴趣建立代表。“不要啜饮”的建议完全是错误的。它有时是一种有用的技术(我刚刚通过读取整个文件将程序的运行时间减少了 1000 倍),不应弃用。 (2认同)