File.read返回nil

时间:2014-08-04 15:18:24

标签: ruby-on-rails ruby json file

我在ruby中创建了一个文件,并在其中保存了一些哈希值。当我读到文件时,我没有。这是代码:

my_hash = Hash.new
file = File.open("my_file.json", "w")

my_hash["test_key"] = "0.1"
file.write(my_hash.to_json)

file_read = File.read("my_file.json")
p file_read // This prints nil

当我打开文件时,我会看到{"test_key":"0.1"}

我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:2)

写入文件后,您没有关闭该文件,因此,当您尝试从文件中读取文件时,操作系统最有可能尚未将待处理的IO刷新到文件中。就操作系统而言,该文件尚不存在。

答案 1 :(得分:1)

完成写作后关闭文件:

my_hash = Hash.new
file = File.open("my_file.json", "w")

my_hash["test_key"] = "0.1"
file.write(my_hash.to_json)
file.close # close after writing

file_read = File.read("my_file.json")
p file_read