为什么File.each工作但File.readline不工作?

时间:2013-10-13 12:58:11

标签: ruby

为什么File.each有效但File.readline没有?

File.open('store-sample','r') do |f|

  f.readline("\n\n\n\n") do |l|
    binding.pry

  end
end

代码并没有中断,但以下代码有效:

File.open('store-sample','r').each("\n\n\n\n") do |l|
  binding.pry
end

我不知道这两种方法的内部实现,但这种奇怪的行为确实让我发疯。

2 个答案:

答案 0 :(得分:3)

readline没有阻止;它返回一个值。

line = f.readline('\n\n\n\n')
# do something with line

答案 1 :(得分:0)

为什么不使用File.foreach?它被设计为一次返回一行。