所以我有这个代码将一些数字放入文本文件中。
outFile = File.new("Demo.txt", "a+")
outFile.puts (1..5).map{ '%05d' % rand(00000..99999) }
outFile.close
puts File.read("Demo.txt")
我想知道我是否可以抽出一个已创建的随机数。
答案 0 :(得分:2)
我会这样做:
File.open("Demo.txt", "a+") do |file|
file.puts (1..5).map{ '%05d' % rand(00000..99999) }
end
# give you any random number from the file
puts File.readlines("Demo.txt").map(&:strip).sample
IO::readlines
会将您放在文件"Demo.txt"
中的所有数字作为Array
。现在Array#sample
,将选择一个随机元素。
为什么我使用IO::open
?请阅读以下内容:
如果没有关联的阻止,
IO.open
是::new
的同义词。 如果给出了可选的代码块,它将作为参数传递给io,当块终止时,IO对象将自动关闭。在这个例子中,{{ 1}}返回块的值。