Ruby on Rails 是否有文件读取流?

Rue*_*gen 0 ruby file-io ruby-on-rails stream

rails 有没有办法实现像 Node js 这样的读取流来读取文件?

IE

fs.createReadStream(__dirname + '/data.txt');
Run Code Online (Sandbox Code Playgroud)

相对于

fs.readFile(__dirname + '/data.txt');
Run Code Online (Sandbox Code Playgroud)

我在哪里看到红宝石有

file = File.new("data.txt")
Run Code Online (Sandbox Code Playgroud)

我不确定 ruby​​/rails 中用于创建流的等​​效项,并且想知道这是否可行。我要求的原因是内存管理,因为流将作为与整个文件相关的一块一块地交付。

Fun*_*uit 6

如果您想逐个读取 Ruby 中的文件,有许多方法可供您使用。

  • IO#each_line/ IO::foreach,也实现了File迭代文件的每一行。既不将整个文件读入内存;相反,两者都只是简单地读到下一个换行符,返回并暂停阅读,除非有可能的缓冲区。
  • IO#read/IO::read接受一个length参数,它允许您指定它length从文件中读取最多字节。这只会读取那么多,而不是全部。
  • IO::binread与 相同IO::read,但将以二进制模式打开文件。
  • IO#readpartial看起来与 非常相似或相同IO#read,但也值得一看。
  • IO#getcIO#gets据我所知,两者都从文件中读取,直到到达返回内容的末尾。

我现在正在寻找更多的东西。