用於簡單 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...