Ruby Tip——讀文件
Ruby如何簡潔地讀整個文件,你可以這樣做:
f=File.open("test.log","r")
result=''
f.each_line do |line|
result+=line
end
puts result
但是,更簡潔的方法是:result=''
f.each_line do |line|
result+=line
end
puts result
File.open("test.log","r"){ |f| f.collect.join}
利用了文件打開的IO對象混入了Enumerable模塊這一特點,通過map或者collect將所有文件行放入一個數組,再join即可。
更正,其實更簡介的方法是:
IO.read("test.log")
僅限於讀文本文件。
這個tip的由來是我在讀二進製文件的時候發現IO.read出來的大小與實際結果不符合,然後去嚐試上文提到的這個方法,其實仍然是錯誤的。讀二進製文件需要指定mode為b:
File.open("test.swf","rb")
文章轉自莊周夢蝶 ,原文發布時間 2008-10-07
最後更新:2017-05-18 11:01:56