本文簡要介紹ruby語言中 ARGF.read
的用法。
用法
read([length [, outbuf]]) → string, outbuf, or nil
從 ARGF
讀取 length
字節。命令行上命名的文件通過此方法連接並視為單個文件,因此當不帶參數調用時,此偽文件的內容將全部返回。
length
必須是非負整數或 nil
。
如果length
是正整數,則read
會嘗試讀取length
字節而不進行任何轉換(二進製模式)。如果在讀取任何內容之前遇到 EOF,它將返回 nil
。如果在讀取期間遇到 EOF,則返回少於 length
的字節。在整數 length
的情況下,生成的字符串始終采用 ASCII-8BIT 編碼。
如果 length
被省略或者是 nil
,它會一直讀取到 EOF 並應用編碼轉換(如果適用)。即使在讀取任何數據之前遇到 EOF,也會返回一個字符串。
如果 length
為零,則返回一個空字符串 (""
)。
如果存在可選的 outbuf
參數,則它必須引用 String
,它將接收數據。 outbuf
將僅包含方法調用後接收到的數據,即使它一開始不為空。
例如:
$ echo "small" > small.txt $ echo "large" > large.txt $ ./glark.rb small.txt large.txt ARGF.read #=> "small\nlarge" ARGF.read(200) #=> "small\nlarge" ARGF.read(2) #=> "sm" ARGF.read(0) #=> ""
請注意,此方法的行為類似於 C 中的 fread() 函數。這意味著它會重試調用 read(2) 係統調用以讀取具有指定長度的數據。如果您需要像單個 read(2) 係統調用這樣的行為,請考慮 ARGF#readpartial
或 ARGF#read_nonblock
。
相關用法
- Ruby ARGF.readlines用法及代碼示例
- Ruby ARGF.readbyte用法及代碼示例
- Ruby ARGF.readchar用法及代碼示例
- Ruby ARGF.rewind用法及代碼示例
- Ruby ARGF.path用法及代碼示例
- Ruby ARGF.each用法及代碼示例
- Ruby ARGF.eof用法及代碼示例
- Ruby ARGF.inplace_mode =用法及代碼示例
- Ruby ARGF.to_io用法及代碼示例
- Ruby ARGF.set_encoding用法及代碼示例
- Ruby ARGF.pos用法及代碼示例
- Ruby ARGF.binmode?用法及代碼示例
- Ruby ARGF.lineno =用法及代碼示例
- Ruby ARGF.eof?用法及代碼示例
- Ruby ARGF.filename用法及代碼示例
- Ruby ARGF.file用法及代碼示例
- Ruby ARGF.fileno用法及代碼示例
- Ruby ARGF.to_i用法及代碼示例
- Ruby ARGF.tell用法及代碼示例
- Ruby ARGF.argv用法及代碼示例
- Ruby ARGF.close用法及代碼示例
- Ruby ARGF.lineno用法及代碼示例
- Ruby ARGF.print用法及代碼示例
- Ruby ARGF.pos =用法及代碼示例
- Ruby ARGF.getbyte用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 ARGF.read。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。