2014-07-10 42 views
-1

所以,我對編程比較陌生,而且我已經開始使用ruby了。我正在閱讀「學習如何編寫艱難的方式:Ruby」,我正在練習15;文件閱讀的開始。我已經複製了他們提供的一字一句的代碼,從字面上複製並粘貼它來確保,但是我得到了同樣的錯誤。我搜索了這個錯誤,但無濟於事。我正在嘗試讀取.txt文件所在的目錄中的.rb文件。這是我的代碼。在Ruby中讀取文件

filename = ARGV.first 

prompt = "> " 
txt = File.open(filename) 

puts "Here's your file: #{filename}" 
puts txt.read() 

puts "I'll also ask you to type it again:" 
print prompt 
file_again = STDIN.gets.chomp() 

txt_again = File.open(file_again) 

puts txt_again.read() 

錯誤我不斷收到這本:

ex15.rb:19:in 'initialize': No such file of directory - ex15.txt <Errno::ENOENT> 
from ex15.rb:4:in 'open' 
from ex15.rb:4:in '<main>' 

命令來運行它:

ruby ex15.rb ex15.txt 

任何幫助表示讚賞。謝謝

+0

你如何運行腳本? – Ryan

+3

文件「ex15.txt」是否存在? – ThomasW

+0

順便說一句,你沒有關閉文件的句柄,這似乎不是一個好的編程習慣,你應該在腳本的末尾有'txt.close'和'txt_again.close' – bjhaid

回答

3

當您不指定File.open()的mode參數時,默認值爲'r',代表read。要讀取文件,它必須已經存在。錯誤消息告訴你,當前目錄中沒有名爲「ex15.txt」的文件供ruby讀取。

要消除錯誤,請在當前目錄中創建名爲ex15.txt的文件,然後在該文件中鍵入'hello world'。