-2
此腳本旨在從一個文件獲取數據並將其複製到另一個文件。我被瞭解Ruby的困難的方法挑戰寫一行代碼,所以:學習Ruby The Hard Way:未定義的方法`關閉'
from_file, to_file = ARGV
output = open(to_file, 'w').write(File.read(from_file))
output.close
我在一個終端上鍵入ruby ex17.rb test.txt new_file.txt
並且得到錯誤:
undefined method `close' for "new_file.txt":String (NoMethodError)
使用我無法關閉任何文件腳本。如果我保持所有方法open
,write
和read
分開,我沒有問題關閉的事情。我讀File.read
自動關閉文件,但我只讀from_file
。 to_file
會不會開放?
一些單證使用File.open()
,但我還沒有發現有必要,也沒有學習Ruby困難的方法建議其使用,添加File.
打開一個文件。 open(filename)
似乎在自己的工作。但對於read
,似乎有必要編寫File.read
。爲什麼與用法不一致?
「File.read」是否自動關閉文件取決於您是否將其與塊一起使用。 – sawa