当我开始打印线从一个文件,我得到这个错误印刷线红宝石
#<File:0x007ff65ee297b0>
这里是代码
require 'rubygems'
File.open("sample.txt", 'r') do |f|
puts f
end
当我开始打印线从一个文件,我得到这个错误印刷线红宝石
#<File:0x007ff65ee297b0>
这里是代码
require 'rubygems'
File.open("sample.txt", 'r') do |f|
puts f
end
另一种方式:
IO.foreach("sample.txt") {|line| line }
或者
File.foreach('sample.txt') {|line| line }
File::open
返回文件句柄(这显然正在打印为#<File:0x007ff65ee297b0>
。)如果您需要逐行输入文件内容,您可能需要使用IO::readlines
:
IO.readlines("sample.txt").each do |line|
puts line
end
您要打印的文件对象。要获得通过线的内容线,您可以使用File.foreach
File.foreach('sample.txt', 'r') do |line|
puts line # called for every line
end
要处理整个文件一次,你可以使用read
方法的文件对象:
File.open('sample.txt', 'r') do |file|
puts file.read # called only once
end
这不是一个错误。它正确打印一行是你的File对象。 在这里你创建一个文件对象,你没有要求它获取线或其他任何事情。
已经有几个很好的答案。但这里有另一种方法,只需对代码进行最小限度的更改:
File.open("sample.txt", 'r').each_line do |f|
puts f
end
这不是错误。它正在打印文件对象 – tihom 2014-11-04 07:36:12
你的问题是什么? – sawa 2014-11-04 08:04:04