Version: Unity 6.7 Beta (6000.7)
LanguageEnglish
  • C#

DataStreamReader

struct in Unity.Collections

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

Reads data serialized by a DataStreamWriter.

The DataStreamReader class is the counterpart of the DataStreamWriter class and can be used to deserialize data which was prepared with it.

Data is stored in the endian format native to the current machine architecture. For network byte order use the so named methods. Simple usage example: using (var data = new NativeArray<byte>(16, Allocator.Persistent)) { var dataWriter = new DataStreamWriter(data); dataWriter.WriteInt(42); dataWriter.WriteInt(1234); dataWriter.Flush(); var dataReader = new DataStreamReader(dataWriter.AsNativeArray()); var myFirstInt = dataReader.ReadInt(); var mySecondInt = dataReader.ReadInt(); }

DataStreamReader carries the position of the read pointer inside the struct, taking a copy of the reader will also copy the read position. This includes passing the reader to a method by value instead of by ref.

DataStreamWriterDataStreamReader.IsLittleEndian

Static Properties

Property Description
IsLittleEndian Show the byte order in which the current computer architecture stores data.

Properties

Property Description
HasFailedReads If there is a read failure this returns true. A read failure might happen if this attempts to read more than there is capacity for.
IsCreated True if the reader has been pointed to a valid buffer space. This would be false if the reader was created with no arguments.
Length The total size of the buffer space this reader is working with.

Constructors

Constructor Description
DataStreamReader Initializes a new instance of the DataStreamReader struct with a NativeArray<byte>

Public Methods

Method Description
Flush Aligns the read pointer to the next byte-aligned position. Does nothing if already aligned.
GetBitsRead Gets the number of bits read from the data stream.
GetBytesRead Gets the number of bytes read from the data stream.
ReadByte Reads an unsigned byte from the current stream and advances the current position of the stream by one byte.
ReadBytes Read and copy data into the given NativeArray of bytes. An error will be logged if not enough bytes are available to fill the array, and DataStreamReader.HasFailedReads will then be true.
ReadDouble Reads a 8-byte floating point value from the current stream and advances the current position of the stream by four bytes.
ReadFixedString Read and copy data into the given NativeArray of bytes, an error will be logged if not enough bytes are available in the array.
ReadFixedString128 Reads a FixedString128Bytes value from the current stream and advances the current position of the stream by the length of the string.
ReadFixedString32 Reads a FixedString32Bytes value from the current stream and advances the current position of the stream by the length of the string.
ReadFixedString4096 Reads a FixedString4096Bytes value from the current stream and advances the current position of the stream by the length of the string.
ReadFixedString512 Reads a FixedString512Bytes value from the current stream and advances the current position of the stream by the length of the string.
ReadFixedString64 Reads a FixedString64Bytes value from the current stream and advances the current position of the stream by the length of the string.
ReadFloat Reads a 4-byte floating point value from the current stream and advances the current position of the stream by four bytes.
ReadInt Reads a 4-byte signed integer from the current stream and advances the current position of the stream by four bytes.
ReadIntNetworkByteOrder Reads a 4-byte signed integer from the current stream in Big-endian byte order and advances the current position of the stream by four bytes. If the current endianness is in little-endian order, the byte order will be swapped.
ReadLong Reads an 8-byte signed long from the stream and advances the current position of the stream by eight bytes.
ReadPackedDouble Reads a 8-byte floating point value from the data stream using a StreamCompressionModel.
ReadPackedDoubleDelta Reads a 8-byte floating point value from the data stream. If the first bit is 0, the data did not change and baseline will be returned.
ReadPackedFixedString128Delta Reads a FixedString128Bytes delta value to the data stream using a StreamCompressionModel.
ReadPackedFixedString32Delta Reads a FixedString32Bytes delta value to the data stream using a StreamCompressionModel.
ReadPackedFixedString4096Delta Reads a FixedString4096Bytes delta value to the data stream using a StreamCompressionModel.
ReadPackedFixedString512Delta Reads a FixedString512Bytes delta value to the data stream using a StreamCompressionModel.
ReadPackedFixedString64Delta Reads a FixedString64Bytes delta value to the data stream using a StreamCompressionModel.
ReadPackedFixedStringDelta Read and copy data into the given NativeArray of bytes, an error will be logged if not enough bytes are available in the array.
ReadPackedFloat Reads a 4-byte floating point value from the data stream using a StreamCompressionModel.
ReadPackedFloatDelta Reads a 4-byte floating point value from the data stream. If the first bit is 0, the data did not change and baseline will be returned.
ReadPackedInt Reads a 4-byte signed integer value from the data stream using a StreamCompressionModel. Negative values de-interleaves from positive values before returning, for example (0, -1, 1, -2, 2) -> (-2, -1, 0, 1, 2)
ReadPackedIntDelta Reads a 4-byte signed integer delta value from the data stream using a StreamCompressionModel.
ReadPackedLong Reads an 8-byte signed long value from the data stream using a StreamCompressionModel. Negative values de-interleaves from positive values before returning, for example (0, -1, 1, -2, 2) -> (-2, -1, 0, 1, 2)
ReadPackedLongDelta Reads an 8-byte signed long delta value from the data stream using a StreamCompressionModel.
ReadPackedUInt Reads a 4-byte unsigned integer from the current stream using a StreamCompressionModel and advances the current position the number of bits depending on the model.
ReadPackedUIntDelta Reads a 4-byte unsigned integer delta value from the data stream using a StreamCompressionModel.
ReadPackedULong Reads an 8-byte unsigned long value from the data stream using a StreamCompressionModel.
ReadPackedULongDelta Reads an 8-byte unsigned long delta value from the data stream using a StreamCompressionModel.
ReadRawBits Reads a specified number of bits from the data stream.
ReadShort Reads a 2-byte signed short from the current stream and advances the current position of the stream by two bytes.
ReadShortNetworkByteOrder Reads a 2-byte signed short from the current stream in Big-endian byte order and advances the current position of the stream by two bytes. If the current endianness is in little-endian order, the byte order will be swapped.
ReadUInt Reads a 4-byte unsigned integer from the current stream and advances the current position of the stream by four bytes.
ReadUIntNetworkByteOrder Reads a 4-byte unsigned integer from the current stream in Big-endian byte order and advances the current position of the stream by four bytes. If the current endianness is in little-endian order, the byte order will be swapped.
ReadULong Reads an 8-byte unsigned long from the stream and advances the current position of the stream by eight bytes.
ReadUShort Reads a 2-byte unsigned short from the current stream and advances the current position of the stream by two bytes.
ReadUShortNetworkByteOrder Reads a 2-byte unsigned short from the current stream in Big-endian byte order and advances the current position of the stream by two bytes. If the current endianness is in little-endian order, the byte order will be swapped.
SeekSet Sets the current position of this stream to the given value. An error will be logged if pos is outside the length of the stream. The read position is set to the start of the given byte.