我正在尝试显示文件的内容。
class CommonLog
def initialize(filename)
@filename = filename
end
def readfile
text = File.readlines(@filename).map do |line|
line.split(" ")
puts text
end
end
end
my_file = CommonLog.new("test.log")
puts my_file.readfile
我收到错误没有这样的文件或目录 - test.log“。
答案 0 :(得分:0)
创建文件。但是,一旦你越过那个文件不存在的错误,你就会做一些不值得的事情。
您正在拆分该行,但不存储或使用该信息。
您正在使用puts来输出文本对象的返回值,但您的问题标题是如何查看内容。
一旦文件存在,您可以puts line
输出文件的每一行。
您正在分配文本,并在同一语句中引用它,因此当您text
nil
时,它就是text
。该方法将赋值给文本,但不会被使用。
如果删除块内text
的引用,则可以删除join
变量的赋值。
最后,如果您只想返回一行数组,或者在readlines
方法上使用class CommonLog
def initialize(filename)
@filename = filename
end
def readfile
File.readlines(@filename)
end
end
my_file = CommonLog.new("test.log")
puts my_file.readfile # This actually prints an Array
,则可以删除整个块。
重新设计的版本可能如下所示:
{{1}}
该数组保存文件的内容,puts显示存储在该数组中的该文件的内容。