莊周夢(mèng)蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          Ruby Tip——讀文件

          Posted on 2008-10-07 09:38 dennis 閱讀(1333) 評(píng)論(3)  編輯  收藏 所屬分類: 動(dòng)態(tài)語言
           Ruby如何簡潔地讀整個(gè)文件,你可以這樣做:
          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對(duì)象混入了Enumerable模塊這一特點(diǎn),通過map或者collect將所有文件行放入一個(gè)數(shù)組,再join即可。

          更正,其實(shí)更簡介的方法是:
          IO.read("test.log")
          僅限于讀文本文件。

          這個(gè)tip的由來是我在讀二進(jìn)制文件的時(shí)候發(fā)現(xiàn)IO.read出來的大小與實(shí)際結(jié)果不符合,然后去嘗試上文提到的這個(gè)方法,其實(shí)仍然是錯(cuò)誤的。讀二進(jìn)制文件需要指定mode為b:
          File.open("test.swf","rb")

          僅作更正。

          評(píng)論

          # re: Ruby Tip——讀文件  回復(fù)  更多評(píng)論   

          2008-10-09 14:30 by ning
          很漂亮,喜歡ruby的簡潔
          希望你看看這個(gè):
          http://chinaonrails.com/topic/view/2226.html
          (組織個(gè)Guangzhouonrails靠譜么?)
          為“Ruby恒久遠(yuǎn),一顆永流傳“作鋪墊哦:)

          # re: Ruby Tip——讀文件  回復(fù)  更多評(píng)論   

          2008-10-10 00:03 by dennis
          @ning
          我覺的很靠譜,行動(dòng)?

          # re: Ruby Tip——讀文件  回復(fù)  更多評(píng)論   

          2008-10-13 12:24 by supermomo
          File.open("test.log").collect.join

          File.open("test.log").readlines.join
          主站蜘蛛池模板: 正镶白旗| 铜山县| 牟定县| 满洲里市| 长治县| 遂溪县| 辽宁省| 兴宁市| 固镇县| 舞钢市| 江油市| 新乐市| 当涂县| 江源县| 涞源县| 梅河口市| 辽中县| 鄯善县| 双柏县| 铜山县| 额济纳旗| 襄汾县| 江孜县| 沂南县| 读书| 大邑县| 大冶市| 巍山| 防城港市| 武强县| 嘉鱼县| 青河县| 友谊县| 黄梅县| 江口县| 梁平县| 英吉沙县| 土默特左旗| 屯门区| 健康| 台东县|