read!
read!(stream, array::Array)
Read binary data from a stream, filling in the argument array.
Examples
-
Read binary data from a stream into an array:
julia> stream = IOBuffer([0x01, 0x02, 0x03, 0x04]); julia> array = zeros(UInt8, 4); julia> read!(stream, array) 4-element Array{UInt8,1}: 0x01 0x02 0x03 0x04This example reads 4 bytes of binary data from the
streamand fills thearraywith the read values. -
Read binary data from a file into an array:
julia> file = open("data.bin", "r"); julia> array = zeros(UInt16, 3); julia> read!(file, array) 3-element Array{UInt16,1}: 0x0102 0x0304 0x0506It reads 3 UInt16 values from a binary file (
data.bin) and stores them in thearray. - Read binary data from a network socket into an array:
julia> sock = connect("localhost", 8000); julia> array = zeros(Float64, 5); julia> read!(sock, array) 5-element Array{Float64,1}: 3.14 2.71828 1.414 0.577 2.236This example reads 5 Float64 values from a network socket (
localhost:8000) and populates thearray.
Common mistake example:
julia> stream = IOBuffer([0x01, 0x02, 0x03]);
julia> array = zeros(UInt8, 4);
julia> read!(stream, array)
ERROR: ReadError: attempted to read 4 bytes, but only got 3 bytes
In this example, the size of the array is larger than the available data in the stream. It's essential to ensure that the array size matches the amount of data to be read to avoid such errors.
See Also
deserialize, eachline, eof, fd, flush, IOBuffer, ismarked, isopen, isreadonly, mark, nb_available, open, pipeline, position, read, read!, readavailable, readbytes, readbytes!, readline, redirect_stderr, redirect_stdin, reset, seek, seekend, seekstart, serialize, skip, skipchars, TextDisplay, unmark, write, writemime,User Contributed Notes
Add a Note
The format of note supported is markdown, use triple backtick to start and end a code block.