首页 > 解决方案 > 大小读写文件和条件语句

问题描述

初学者学习 Ruby。正在做一个关于读写文件的练习。

name_number = {

}

File.open("book.txt", 'a') do |file| 
  name_number.each do |name, number| 
    file.write ("- #{name} #{number}\n")
  end
  file.close
end

File.open("book.txt", "r") do |file|
  if file.size < 1
    puts "There are no people in the book."
  end

  File.open("book.txt", "r") do |file| 
    puts file.read
  end
end

所以它输出“书中没有人”。当文件为空时。

所以如果我们添加一些人......

name_number = {
  "Bill" => 87987,
  "Kevin" => 78912
}

File.open("book.txt", 'a') do |file| 
  name_number.each do |name, number| 
    file.write ("- #{name} #{number}\n")
  end
  file.close
end

我试图弄清楚如何让它说

1 表示“有一个人”,大于 1 表示“有一些人”。

我想我需要一个elsif类似这样的声明,(但显然这不起作用,但也许你可以看到我想要实现的目标?)。

File.open("book.txt", "r") do |file|
  if file.size < 1
    puts "There are no people in the book."
  elsif file.size == 1
    puts "There is an entry in the book."
  elsif file.size == 2
    puts "There are two entries in the book"  
  end

  File.open("book.txt", "r") do |file|
    puts file.read
  end
end

我肯定错过了一些东西。我想知道是否有人可以指出我正确的方向?

标签: rubyfilesize

解决方案


file.size 为您提供字节数。你可能想要file.readlines .size


推荐阅读