ReadByteArray[src]
gives the contents of src as a ByteArray object.
ReadByteArray[src,n]
reads the first n bytes from src.
ReadByteArray[src,term]
reads until the termination condition term is satisfied.
ReadByteArray
ReadByteArray[src]
gives the contents of src as a ByteArray object.
ReadByteArray[src,n]
reads the first n bytes from src.
ReadByteArray[src,term]
reads until the termination condition term is satisfied.
Details and Options
- In ReadByteArray[src,…], src can be a file given as "filename" or File["filename"], an input-oriented stream such as InputStream or an external process with head ProcessObject.
- ReadByteArray["file",…] and ReadByteArray[File["file"],…] will open "file" for reading if it is not already open. In this case, the file will be closed after reading if the default terminator, EndOfFile, is used.
- The termination condition term can be any of the following:
-
n up to n bytes have been read ByteArray[…] a literal sequence of bytes is encountered EndOfBuffer available content is exhausted EndOfFile the end of the source is reached (default) EndOfLine a byte sequence corresponding to ends of lines {term1,term2,…} any of the termi - If the termination condition consists of a byte sequence, that sequence is simply dropped and is not returned as part of the byte array.
- ReadByteArray[src] or ReadByteArray[src,EndOfFile] reads from the current position until a stream has ended or the external process providing input has terminated.
- If ReadByteArray is called on a source of content that has already been exhausted, it returns EndOfFile.
- ReadByteArray is a blocking function that by default will not return until it has read whatever it is specified to read.
- With the option setting TimeConstraint->t, ReadByteArray waits at most t seconds, then returns whatever it has read by that time.
- ReadByteArray[src,EndOfBuffer] does not block, and returns whatever is already available in the input buffer.
Examples
open all close allBasic Examples (2)
Read in an image file as a byte array:
ba = ReadByteArray["ExampleData/rose.gif"]The byte array contains the contents of the file for further manipulation:
ImportByteArray[ba] == Import["ExampleData/rose.gif"]file = CreateFile[];
Export[file, "aαℵ", "Text"];Read in the file as a byte array:
ba = ReadByteArray[file]Normal[ba]Convert the bytes back to a string:
ByteArrayToString[ba]Scope (5)
ba = ReadByteArray["ExampleData/atoms.wxf"]Read in the file, explicitly specifying the EndOfFile terminator:
% == ReadByteArray["ExampleData/atoms.wxf", EndOfFile]Convert the data to expressions:
BinaryDeserialize[ba]Read in the first line of text of Alice in Wonderland as an array of bytes:
ba = ReadByteArray["ExampleData/Text/AliceInWonderland.txt", EndOfLine]ByteArrayToString[ba]ReadByteArray["ExampleData/Text/AliceInWonderland.txt", EndOfLine]Close["ExampleData/Text/AliceInWonderland.txt"]Read the first 70 bytes of the United States Constitution:
ba = ReadByteArray["ExampleData/USConstitution.txt", 70]ByteArrayToString[%]Read until either 70 bytes have been read or an end of line is encountered:
ReadByteArray["ExampleData/USConstitution.txt", {70, EndOfLine}]ReadByteArray["ExampleData/USConstitution.txt", {70, EndOfLine}]Close["ExampleData/USConstitution.txt"]Open a system shell using StartProcess:
process = StartProcess[$SystemShell]ReadByteArray[process, EndOfBuffer]Write a command to the process that generates output:
WriteString[process, "echo hello
"];Read the available output as a byte array:
ReadByteArray[process, EndOfBuffer]Convert the bytes to a string and notice that it includes the end-of-line character:
ByteArrayToString[%]Write the command to the process a second time:
WriteString[process, "echo hello
"];This time, read until the end of line is reached:
ReadByteArray[process, EndOfLine]The byte array no longer encodes an end of line:
ByteArrayToString[%]KillProcess[process]socket = SocketConnect["http://exampledata.wolfram.com"]Write a request to the socket:
WriteString[socket, "GET /cellularautomaton.gif HTTP/1.0
"]Read until the byte sequence corresponding to GIF89 is read:
header = StringToByteArray["GIF89"]ReadByteArray[socket, header]Convert the data in the HTTP header to text:
ByteArrayToString[%]//ShortReadByteArray[socket]Join the bytes with the GIF header and import the images:
ImportByteArray[Join[header, %], "GIF"]Close[socket]Options (1)
TimeConstraint (1)
Start a shell and clear the output it prints on startup:
process = StartProcess[$SystemShell]
ReadByteArray[process, EndOfBuffer];Attempt to read 5 bytes, but force a return after 2 seconds with what has been obtained:
ReadByteArray[process, 5, TimeConstraint -> 2]Write a command to the shell, causing it to print output:
WriteString[process, "echo hello
"]Attempt another time-constrained read, which returns immediately with 5 bytes:
ReadByteArray[process, EndOfLine, TimeConstraint -> 2]KillProcess[process]Properties & Relations (5)
ReadByteArray[src] is effectively equivalent to ByteArray[BinaryReadList[src]]:
ReadByteArray["ExampleData/strings"] == ByteArray[BinaryReadList["ExampleData/strings"]]ReadByteArray[src] is effectively equivalent to StringToByteArray[ReadString[src], "ISO8859-1"]:
ReadByteArray["ExampleData/spikey.tiff"] == StringToByteArray[ReadString["ExampleData/spikey.tiff"], "ISO8859-1"]ReadByteArray[src,n] reads n bytes at once:
ba = ReadByteArray["ExampleData/strings", 10]BinaryRead[src] reads one byte at a time:
SetStreamPosition["ExampleData/strings", 0];table = Table[BinaryRead["ExampleData/strings"], 10]The data is the same as read in by ReadByteArray:
ByteArray[table] == baClose["ExampleData/strings"];ReadByteArray[src] is effectively equivalent to StringToByteArray[Import[src,"String"],"ISO8859-1"]:
ReadByteArray["ExampleData/strings"] == StringToByteArray[Import["ExampleData/strings", "String"], "ISO8859-1"]ImportByteArray[ReadByteArray[src]] is effectively equivalent to Import[src]:
{ImportByteArray[ReadByteArray["ExampleData/spikey.tiff"]], Import["ExampleData/spikey.tiff"]}History
Text
Wolfram Research (2018), ReadByteArray, Wolfram Language function, https://reference.wolfram.com/language/ref/ReadByteArray.html.
CMS
Wolfram Language. 2018. "ReadByteArray." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ReadByteArray.html.
APA
Wolfram Language. (2018). ReadByteArray. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ReadByteArray.html
BibTeX
@misc{reference.wolfram_2026_readbytearray, author="Wolfram Research", title="{ReadByteArray}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/ReadByteArray.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_readbytearray, organization={Wolfram Research}, title={ReadByteArray}, year={2018}, url={https://reference.wolfram.com/language/ref/ReadByteArray.html}, note=[Accessed: 13-June-2026]}