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 & Context
-
- Sequence of binary data objects.
- Binary format.
- Stores a uniform sequence of simple or compound data types.
Import & 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["file",expr,{"Binary",elem}] creates a binary file by treating expr as specifying element elem.
- See the following reference pages for full general information:
-
Import, Export import from or export to a file CloudImport, CloudExport import from or export to a cloud object ImportString, ExportString import from or export to a string ImportByteArray, ExportByteArray import from or export to a byte array
Import Elements
- General Import elements:
-
"Elements" list of elements and options available in this file "Summary" summary of the file "Rules" list of rules for all available elements - 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 "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 "not‐a‐number".
- Trailing bytes are ignored if the size of the imported file is not a multiple of the data size.
Options
- General option:
-
ByteOrdering $ByteOrdering what byte ordering to use - Import option:
-
"HeaderBytes" 0 how many bytes to skip at the beginning of the file - Data representation option:
-
"DataFormat" Automatic specifies 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:
The format specification "Binary" can be omitted when importing elementary data types:
Export pairs of integers and reals to a binary sequence of 8-bit integers and double-precision reals: