Ruby 讀取和寫入檔案的幾種方法總結

2021-09-24 15:33:40 字數 1812 閱讀 9906

用於簡單 i/o 的方法也可用於所有 file 物件。所以,gets 從標準輸入讀取一行,afile.gets 從檔案物件 afile 讀取一行。

this is a ****** text file for testing purpose.
現在讓我們嘗試讀取這個檔案:

例項

#!/usr/bin/ruby

afile = file.new("input.txt", "r")

if afile

content = afile.sysread(20)

puts content

else

puts "unable to open file!"

end

該語句將輸入檔案的頭 20 個字元。檔案指標將被放置在檔案中第 21 個字元的位置。

您可以使用方法 syswrite 來向檔案寫入內容。當使用方法 syswrite 時,您需要以寫入模式開啟檔案。例如:

例項

#!/usr/bin/ruby

afile = file.new("input.txt", "r+")

if afile

afile.syswrite("abcdef")

else

puts "unable to open file!"

end

該語句將寫入 「abcdef」 到檔案中。

該方法屬於類 file。方法 each_byte 是個可以迭代字串中每個字元。請看下面的**例項:

例項

#!/usr/bin/ruby

afile = file.new("input.txt", "r+")

if afile

afile.syswrite("abcdef")

afile.rewind

afile.each_byte

else

puts "unable to open file!"

end

字元乙個接著乙個被傳到變數 ch,然後顯示在螢幕上,如下所示:

a.b.c.d.e.f.s. .a. .s.i.m.p.l.e. .t.e.x.t. .f.i.l.e. .f.o.r. .t.e.s.t.i.n.g. .p.u.r.p.o.s.e...
類 file 是類 io 的乙個子類。類 io 也有一些用於操作檔案的方法。

io.readlines 是 io 類中的乙個方法。該方法逐行返回檔案的內容。下面的**顯示了方法 io.readlines 的使用:

例項

#!/usr/bin/ruby

arr = io.readlines("input.txt")

puts arr[0]

puts arr[1]

在這段**中,變數 arr 是乙個陣列。檔案 input.txt 的每一行將是陣列 arr 中的乙個元素。因此,arr[0] 將包含第一行,而 arr[1] 將包含檔案的第二行。

該方法也逐行返回輸出。方法 foreach 與方法 readlines 之間不同的是,方法 foreach 與塊相關聯。但是,不像方法 readlines,方法 foreach 不是返回乙個陣列。例如:

例項

#!/usr/bin/ruby

io.foreach("input.txt")

這段**將把檔案 test 的內容逐行傳給變數 block,然後輸出將顯示在螢幕上。

Python 讀取 寫入檔案的幾種方式

讀檔案 read 讀入全部內容,如果給出引數,讀入前size長度的內容 readline 讀入一行內容,如果給出引數,則讀入該行前size長度的資訊 readlines 讀入檔案的所有行,以每行作為元素形成列表,如果給出引數,則讀入前size行的資訊 1 一次讀入分行處理 缺點 耗費記憶體 f op...

檔案讀取和寫入

open 返回乙個檔案物件,open filename,mode f open workfile w 第乙個引數是包含檔名的字串,第二個引數可以是包含一些字元的字串 r 僅讀取檔案,w 僅寫入檔案,a 開啟檔案以進行新增的模式 r 開啟檔案進行讀取和寫入,模式引數是可選的。r 如果省略,將被假定。b...

檔案寫入和讀取

最近在提高自己程式設計能力,拿一些現實的小指令碼練下。該指令碼為python語言,主要涉及模組os。功能 將控制台輸入文字逐行儲存,和讀取。輸入逐行儲存 import os filename input please enter file name file open filename,w whil...