Binary

  • 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.
  • Background

      Sequence of binary data objects.
      Binary format.
      Stores a uniform sequence of simple or compound data types.

    Import 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 "Binary" 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["\"\!\(\*\nStyleBox[\"file\", \"TI\"]\)\!\(\*\nStyleBox[\"\\\"\", \"TI\"]\)",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.

    Elements

    • 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"8bit characters
      "Character16"16bit 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 singleprecision numbers
      "Real64"IEEE doubleprecision numbers
      "Real128"IEEE quadprecision numbers
      "Complex64"IEEE singleprecision complex numbers
      "Complex128"IEEE doubleprecision complex numbers
      "Complex256"IEEE quadprecision complex numbers
    • By default, Import and Export use the "Byte" 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 "notanumber".
    • Trailing bytes are ignored if the size of the imported file is not a multiple of the data size.

    Options

    • 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 {type1,type2,}
    • With a setting "DataFormat"->{type1,type2,}, Import and Export interpret a raw binary file as a sequence of objects of the form {type1,type2,}.
    • Import["file","Binary","DataFormat"->{"Character8","Integer32"}] reads file as an alternating sequence of 8-bit characters and 32-bit integers.

    Examples

    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 "Binary" 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]=

    See Also

    BinaryRead  BinaryReadList  BinaryWrite  "Bit"  "Byte"

    Introduced in 2004
    (5.1)
    | Updated in 2007
    (6.0)