class Chunked::IORange
- Chunked::IORange
- IO
- Reference
- Object
Included Modules
Defined in:
chunked/io_range.crConstructors
Instance Method Summary
-
#pos : UInt64
Returns the current position (in bytes) in this
IO. -
#pos=(t)
Sets the current position (in bytes) in this
IO. -
#read(slice : Bytes)
Reads at most slice.size bytes from this
IOinto slice. - #size : UInt64
-
#write(slice : Bytes) : Nil
Writes the contents of slice into this
IO.
Constructor Detail
Instance Method Detail
Returns the current position (in bytes) in this IO.
The IO class raises on this method, but some subclasses, notable
IO::FileDescriptor and IO::Memory implement it.
File.write("testfile", "hello")
file = File.new("testfile")
file.pos # => 0
file.gets(2) # => "he"
file.pos # => 2
Sets the current position (in bytes) in this IO.
The IO class raises on this method, but some subclasses, notable
IO::FileDescriptor and IO::Memory implement it.
File.write("testfile", "hello")
file = File.new("testfile")
file.pos = 3
file.gets_to_end # => "lo"
Reads at most slice.size bytes from this IO into slice.
Returns the number of bytes read, which is 0 if and only if there is no
more data to read (so checking for 0 is the way to detect end of file).
io = IO::Memory.new "hello"
slice = Bytes.new(4)
io.read(slice) # => 4
slice # => Bytes[104, 101, 108, 108]
io.read(slice) # => 1
slice # => Bytes[111, 101, 108, 108]
io.read(slice) # => 0
Writes the contents of slice into this IO.
io = IO::Memory.new
slice = Bytes.new(4) { |i| ('a'.ord + i).to_u8 }
io.write(slice)
io.to_s # => "abcd"