閱讀574 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Ruby Tip——讀文件

Ruby如何簡潔地讀整個文件,你可以這樣做:
f=File.open("test.log","r")
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

  上一篇:go  《Spring 5 官方文檔》4. 資源(一)
  下一篇:go  Ruby 1.9概要(5) 異常