ruby - 如何在 Ruby 中一次读取一个文件字节?

标签 ruby file-io

我想迭代地读取文件中固定数量的字节,并返回它们

我的代码如下。我是从网上拿来的例子

File.open('textfile.txt') do |file|
  while (buffer = file.read(size)) do
     yield buffer
  end
end

我得到了没有给出 block 的错误。

最佳答案

嗯,那是因为没有给出 block 。您可以将 yield buffer 替换为 puts buffer(或您想要的任何操作)或创建一个单独的方法获取代码块:

def read_file
  File.open('textfile.txt') do |file|
    while (buffer = file.read(size)) do
      yield buffer
    end
  end
end

然后这样调用它

read_file do |data|
  // do something with data
  puts data 
end

如有必要,将常规参数(如文件名或 block 大小)添加到 read_file

关于ruby - 如何在 Ruby 中一次读取一个文件字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3581156/

相关文章:

c# - 检测打开文件上的文件删除

ruby - 在 Windows 上的 Ruby 中终止进程和子进程

Ruby - 在模块而不是顶层获取 const_missing

ruby-on-rails - Rails 3.1 - 数据导入时拆分列?

c# - 使用多维字符串数组写入文件

c - 使用不同的数据类型逐行读取文件中的数据

ruby - 试图让 svn2git 在 Windows 上工作

ruby - Ruby lookbehind 断言 (1.9/2.0) 中是否存在错误?

c - 对文件进行数学运算

模型- View - Controller - 哪个组件传统上处理文件 I/O?