Binary

Sequence of binary data objects.
Binary format.
Stores a uniform sequence of simple or compound data types.
  • Import reads raw binary data as a sequence of elementary or compound data types.
  • Export generates binary files from uniform lists of elementary or compound data types.

Import and ExportImport and Export

  • Import["file", "Binary"] imports any binary file as a list of bytes.
  • Export["file", list, "Binary"] exports a list of byte-size integers to a binary file.
  • The format must be specified when importing or exporting raw binary files.
  • Import["file", {"Binary", elem}] or Import["file", elem ] imports the specified element from a binary file.
  • Import["file", {"Binary", {elem1, elem2, ...}}] imports multiple elements.
  • Export["file", expr, {"Binary", elem}] creates a binary file by treating expr as specifying element elem.
  • See the reference pages for full general information on Import and Export.
  • ImportString and ExportString support raw binary files.
  • BinaryRead and BinaryWrite can be used for reading from or writing to streams of raw binary data.

ElementsElements

  • General Import elements:
  • "Elements" elements and options available in this file
    "Rules"full rules for each element and option
    "Options"rules for options, properties, and settings
  • Data representation elements:
  • "Bit"zeros and ones
    "Byte"integers in the range 0 to 255
    "Character8"8-bit characters
    "Character16"16-bit characters
    "Integer8"8-bit signed integers
    "Integer16"16-bit signed integers
    "Integer24"24-bit signed integers
    "Integer32"32-bit signed integers
    "Integer64"64-bit signed integers
    "Integer128"128-bit signed integers
    "UnsignedInteger8"8-bit unsigned integers
    "UnsignedInteger16"16-bit unsigned integers
    "UnsignedInteger24"24-bit unsigned integers
    "UnsignedInteger32"32-bit unsigned integers
    "UnsignedInteger64"64-bit unsigned integers
    "UnsignedInteger128"128-bit unsigned integers
    "Real32"IEEE single-precision numbers
    "Real64"IEEE double-precision numbers
    "Real128"IEEE quad-precision numbers
    "Complex64"IEEE single-precision complex numbers
    "Complex128"IEEE double-precision complex numbers
    "Complex256"IEEE quad-precision complex numbers
  • By default, Import and Export use the element.
  • For any data representation element type, Import["file", type] can be used as a shorthand for Import["file", {"Binary", type}].
  • Import of real numbers returns Infinity for IEEE "infinity", and Indeterminate for IEEE "not-a-number".
  • Trailing bytes are ignored if the size of the imported file is not a multiple of the data size.

OptionsOptions

  • General option:
  • ByteOrdering-1what byte ordering to use
  • Import option:
  • "HeaderBytes"0how many bytes to skip at the beginning of the file
  • Data representation option:
  • "DataFormat"Automaticspecifies a compound object as a list of basic data types
  • With a setting , Import and Export interpret a raw binary file as a sequence of objects of the form .
  • Import["file", "Binary", "DataFormat"->{"Character8", "Integer32"}] reads file as an alternating sequence of 8-bit characters and 32-bit integers.

ExamplesExamplesopen allclose all

Basic Examples (2)Basic Examples (2)

Convert a string of characters to a list of byte-valued integers:

In[1]:=
Click for copyable input
Out[1]=

The format specification can be omitted when importing elementary data types:

In[2]:=
Click for copyable input
Out[2]=

Export pairs of integers and reals to a binary sequence of 8-bit integers and double-precision reals:

In[1]:=
Click for copyable input
Out[1]=

Convert the previous output back to an array of numbers:

In[2]:=
Click for copyable input
Out[2]=

Verify that each number pair was converted to bytes:

In[3]:=
Click for copyable input
Out[3]=
New in 5.1 | Last modified in 6
New to Mathematica? Find your learning path »
Have a question? Ask support »