在ruby中打印文件的行

时间:2014-03-05 00:09:52

标签: ruby file printing

我刚刚开始使用Ruby,我正在寻找一种可能的替代方法,使用“gets”进行文件输入......我正在尝试编写一个简单的预热程序,打印出最长的一行文件,如:

def findMax
  maxlength = 0

  while line = gets

    if line.length > maxlength then      
      maxlength = line.length
    end

  end

  return maxlength

end


def printLines num
  while line = gets
    if line.length == num
      puts line
    end
  end
end


printLines findMax

非常简单。找到最大长度,以及打印出最长线的用途,还没什么花哨的。但是,每当我用ruby longest.rb< (文件),我什么都没得到。这是因为我不能在第二个while循环中使用gets,因为它没有更多内容可读?作为替代方案,我该怎么办? :)

1 个答案:

答案 0 :(得分:1)

假设您的文件名为foo.txt,请使用File#readlines将文件中的所有行读入数组,然后Enumerable#sort_by按行size(或{ {1}})和Array#last选择已排序数组中的最后一项

length