takebuf_array
takebuf_array(b::IOBuffer)
Obtain the contents of an IOBuffer
as an array, without copying. Afterwards, the IOBuffer is reset to its initial state.
Examples
-
Obtain contents of an IOBuffer as an array:
julia> buf = IOBuffer("Hello, World!"); julia> takebuf_array(buf) 13-element Array{UInt8,1}: 0x48 0x65 0x6c 0x6c 0x6f 0x2c 0x20 0x57 0x6f 0x72 0x6c 0x64 0x21
This example retrieves the content of the
IOBuffer
buf
as an array ofUInt8
values. - Reset an IOBuffer after extracting its contents:
julia> buf = IOBuffer("Hello, World!"); julia> data = takebuf_array(buf) 13-element Array{UInt8,1}: 0x48 0x65 0x6c 0x6c 0x6f 0x2c 0x20 0x57 0x6f 0x72 0x6c 0x64 0x21 julia> takebuf_array(buf) 0-element Array{UInt8,1}
After extracting the contents of the
IOBuffer
buf
usingtakebuf_array
, the buffer is reset to its initial state, resulting in an empty array whentakebuf_array
is called again.
Common mistake example:
julia> buf = IOBuffer("Hello, World!");
julia> data = takebuf_array(buf);
julia> takebuf_array(buf)
ERROR: ArgumentError: called takebuf_array! on a buffer that has already been taken
In this example, takebuf_array
is called on the same IOBuffer
object after its contents have already been extracted. Once the buffer is taken, it cannot be used again without resetting it. Make sure to reset or recreate the IOBuffer
if you need to extract its contents multiple times.
See Also
Array, broadcast, cat, combinations, conj!, digits!, fieldnames, fill, fill!, last, length, maximum, minimum, ones, parent, parentindexes, partitions, permutations, pointer, pointer_to_array, promote_shape, rand!, reshape, scale, similar, sum, sum_kbn, takebuf_array, transpose!, vec, zeros,User Contributed Notes
Add a Note
The format of note supported is markdown, use triple backtick to start and end a code block.