本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。