Ruby如何簡潔地讀整個文件,你可以這樣做:
利用了文件打開的IO對象混入了Enumerable模塊這一特點,通過map或者collect將所有文件行放入一個數(shù)組,再join即可。
更正,其實更簡介的方法是:
IO.read("test.log")
僅限于讀文本文件。
這個tip的由來是我在讀二進制文件的時候發(fā)現(xiàn)IO.read出來的大小與實際結(jié)果不符合,然后去嘗試上文提到的這個方法,其實仍然是錯誤的。讀二進制文件需要指定mode為b:
File.open("test.swf","rb")
僅作更正。
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將所有文件行放入一個數(shù)組,再join即可。
更正,其實更簡介的方法是:
IO.read("test.log")
僅限于讀文本文件。
這個tip的由來是我在讀二進制文件的時候發(fā)現(xiàn)IO.read出來的大小與實際結(jié)果不符合,然后去嘗試上文提到的這個方法,其實仍然是錯誤的。讀二進制文件需要指定mode為b:
File.open("test.swf","rb")
僅作更正。