当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby IO.ungetbyte用法及代码示例


本文简要介绍ruby语言中 IO.ungetbyte 的用法。

用法

ungetbyte(string) → nil
ungetbyte(integer) → nil

将字节(作为参数传递)推回 ios ,以便后续缓冲读取将返回它。仅保证支持单个字节,并且仅当自从上次从 ios 读取至少一个字节后尚未在 ios 上调用 ungetbyte 或 ungetc 时。但是,如果内部缓冲区中有空间允许它,它可以支持额外的字节。

f = File.new("testfile")   #=> #<File:testfile>
b = f.getbyte              #=> 0x38
f.ungetbyte(b)             #=> nil
f.getbyte                  #=> 0x38

如果给定一个整数,则仅使用整数的低 8 位作为要推送的字节。

f = File.new("testfile")   #=> #<File:testfile>
f.ungetbyte(0x102)         #=> nil
f.getbyte                  #=> 0x2

调用此方法会添加到现有缓冲区,即使之前已经调用过该方法:

f = File.new("testfile")   #=> #<File:testfile>
f.ungetbyte("ab")          #=> nil
f.ungetbyte("cd")          #=> nil
f.read(5)                  #=> "cdab8"

对无缓冲读取(例如 IO#sysread )无效。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 IO.ungetbyte。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。