Class CodedOutputStream

public abstract class CodedOutputStream extends ByteOutput

Encodes and writes protocol message fields.

This class contains two kinds of methods: methods that write specific protocol message constructs and field types (e.g. #writeTag and #writeInt32) and methods that write low-level values (e.g. #writeRawVarint32 and #writeRawBytes). If you are writing encoded protocol messages, you should use the former methods, but if you are writing some other format of your own design, use the latter.

This class is totally unsynchronized.

Inheritance

java.lang.Object > ByteOutput > CodedOutputStream

Fields

DEFAULT_BUFFER_SIZE

public static final int DEFAULT_BUFFER_SIZE

The buffer size used in #newInstance(OutputStream).

Field Value
TypeDescription
int

LITTLE_ENDIAN_32_SIZE (deprecated)

public static final int LITTLE_ENDIAN_32_SIZE

(deprecated) Use #computeFixed32SizeNoTag(int) instead.

Field Value
TypeDescription
int

Methods

checkNoSpaceLeft()

public final void checkNoSpaceLeft()

Verifies that #spaceLeft() returns zero. It's common to create a byte array that is exactly big enough to hold a message, then write to it with a CodedOutputStream. Calling checkNoSpaceLeft() after writing verifies that the message was actually as big as expected, which can help catch bugs.

computeBoolSize(int fieldNumber, boolean value)

public static int computeBoolSize(int fieldNumber, boolean value)

Compute the number of bytes that would be needed to encode a bool field, including tag.

Parameters
NameDescription
fieldNumberint
valueboolean
Returns
TypeDescription
int

computeBoolSizeNoTag(boolean unused)

public static int computeBoolSizeNoTag(boolean unused)

Compute the number of bytes that would be needed to encode a bool field.

Parameter
NameDescription
unusedboolean
Returns
TypeDescription
int

computeByteArraySize(int fieldNumber, byte[] value)

public static int computeByteArraySize(int fieldNumber, byte[] value)

Compute the number of bytes that would be needed to encode a bytes field, including tag.

Parameters
NameDescription
fieldNumberint
valuebyte[]
Returns
TypeDescription
int

computeByteArraySizeNoTag(byte[] value)

public static int computeByteArraySizeNoTag(byte[] value)

Compute the number of bytes that would be needed to encode a bytes field.

Parameter
NameDescription
valuebyte[]
Returns
TypeDescription
int

computeByteBufferSize(int fieldNumber, ByteBuffer value)

public static int computeByteBufferSize(int fieldNumber, ByteBuffer value)

Compute the number of bytes that would be needed to encode a bytes field, including tag.

Parameters
NameDescription
fieldNumberint
valueByteBuffer
Returns
TypeDescription
int

computeByteBufferSizeNoTag(ByteBuffer value)

public static int computeByteBufferSizeNoTag(ByteBuffer value)

Compute the number of bytes that would be needed to encode a bytes field.

Parameter
NameDescription
valueByteBuffer
Returns
TypeDescription
int

computeBytesSize(int fieldNumber, ByteString value)

public static int computeBytesSize(int fieldNumber, ByteString value)

Compute the number of bytes that would be needed to encode a bytes field, including tag.

Parameters
NameDescription
fieldNumberint
valueByteString
Returns
TypeDescription
int

computeBytesSizeNoTag(ByteString value)

public static int computeBytesSizeNoTag(ByteString value)

Compute the number of bytes that would be needed to encode a bytes field.

Parameter
NameDescription
valueByteString
Returns
TypeDescription
int

computeDoubleSize(int fieldNumber, double value)

public static int computeDoubleSize(int fieldNumber, double value)

Compute the number of bytes that would be needed to encode a double field, including tag.

Parameters
NameDescription
fieldNumberint
valuedouble
Returns
TypeDescription
int

computeDoubleSizeNoTag(double unused)

public static int computeDoubleSizeNoTag(double unused)

Compute the number of bytes that would be needed to encode a double field, including tag.

Parameter
NameDescription
unuseddouble
Returns
TypeDescription
int

computeEnumSize(int fieldNumber, int value)

public static int computeEnumSize(int fieldNumber, int value)

Compute the number of bytes that would be needed to encode an enum field, including tag. The provided value is the numeric value used to represent the enum value on the wire (not the enum ordinal value).

Parameters
NameDescription
fieldNumberint
valueint
Returns
TypeDescription
int

computeEnumSizeNoTag(int value)

public static int computeEnumSizeNoTag(int value)

Compute the number of bytes that would be needed to encode an enum field. The provided value is the numeric value used to represent the enum value on the wire (not the enum ordinal value).

Parameter
NameDescription
valueint
Returns
TypeDescription
int

computeFixed32Size(int fieldNumber, int value)

public static int computeFixed32Size(int fieldNumber, int value)

Compute the number of bytes that would be needed to encode a fixed32 field, including tag.

Parameters
NameDescription
fieldNumberint
valueint
Returns
TypeDescription
int

computeFixed32SizeNoTag(int unused)

public static int computeFixed32SizeNoTag(int unused)

Compute the number of bytes that would be needed to encode a fixed32 field.

Parameter
NameDescription
unusedint
Returns
TypeDescription
int

computeFixed64Size(int fieldNumber, long value)

public static int computeFixed64Size(int fieldNumber, long value)

Compute the number of bytes that would be needed to encode a fixed64 field, including tag.

Parameters
NameDescription
fieldNumberint
valuelong
Returns
TypeDescription
int

computeFixed64SizeNoTag(long unused)

public static int computeFixed64SizeNoTag(long unused)

Compute the number of bytes that would be needed to encode a fixed64 field.

Parameter
NameDescription
unusedlong
Returns
TypeDescription
int

computeFloatSize(int fieldNumber, float value)

public static int computeFloatSize(int fieldNumber, float value)

Compute the number of bytes that would be needed to encode a float field, including tag.

Parameters
NameDescription
fieldNumberint
valuefloat
Returns
TypeDescription
int

computeFloatSizeNoTag(float unused)

public static int computeFloatSizeNoTag(float unused)

Compute the number of bytes that would be needed to encode a float field, including tag.

Parameter
NameDescription
unusedfloat
Returns
TypeDescription
int

computeGroupSize(int fieldNumber, MessageLite value) (deprecated)

public static int computeGroupSize(int fieldNumber, MessageLite value)

(deprecated) groups are deprecated.

Compute the number of bytes that would be needed to encode a group field, including tag.

Parameters
NameDescription
fieldNumberint
valueMessageLite
Returns
TypeDescription
int

computeGroupSizeNoTag(MessageLite value)

public static int computeGroupSizeNoTag(MessageLite value)

Compute the number of bytes that would be needed to encode a group field.

Parameter
NameDescription
valueMessageLite
Returns
TypeDescription
int

computeInt32Size(int fieldNumber, int value)

public static int computeInt32Size(int fieldNumber, int value)

Compute the number of bytes that would be needed to encode an int32 field, including tag.

Parameters
NameDescription
fieldNumberint
valueint
Returns
TypeDescription
int

computeInt32SizeNoTag(int value)

public static int computeInt32SizeNoTag(int value)

Compute the number of bytes that would be needed to encode an int32 field, including tag.

Parameter
NameDescription
valueint
Returns
TypeDescription
int

computeInt64Size(int fieldNumber, long value)

public static int computeInt64Size(int fieldNumber, long value)

Compute the number of bytes that would be needed to encode an int64 field, including tag.

Parameters
NameDescription
fieldNumberint
valuelong
Returns
TypeDescription
int

computeInt64SizeNoTag(long value)

public static int computeInt64SizeNoTag(long value)

Compute the number of bytes that would be needed to encode an int64 field, including tag.

Parameter
NameDescription
valuelong
Returns
TypeDescription
int

computeLazyFieldMessageSetExtensionSize(int fieldNumber, LazyFieldLite value)

public static int computeLazyFieldMessageSetExtensionSize(int fieldNumber, LazyFieldLite value)

Compute the number of bytes that would be needed to encode an lazily parsed MessageSet extension field to the stream. For historical reasons, the wire format differs from normal fields.

Parameters
NameDescription
fieldNumberint
valueLazyFieldLite
Returns
TypeDescription
int

computeLazyFieldSize(int fieldNumber, LazyFieldLite value)

public static int computeLazyFieldSize(int fieldNumber, LazyFieldLite value)

Compute the number of bytes that would be needed to encode an embedded message in lazy field, including tag.

Parameters
NameDescription
fieldNumberint
valueLazyFieldLite
Returns
TypeDescription
int

computeLazyFieldSizeNoTag(LazyFieldLite value)

public static int computeLazyFieldSizeNoTag(LazyFieldLite value)

Compute the number of bytes that would be needed to encode an embedded message stored in lazy field.

Parameter
NameDescription
valueLazyFieldLite
Returns
TypeDescription
int

computeMessageSetExtensionSize(int fieldNumber, MessageLite value)

public static int computeMessageSetExtensionSize(int fieldNumber, MessageLite value)

Compute the number of bytes that would be needed to encode a MessageSet extension to the stream. For historical reasons, the wire format differs from normal fields.

Parameters
NameDescription
fieldNumberint
valueMessageLite
Returns
TypeDescription
int

computeMessageSize(int fieldNumber, MessageLite value)

public static int computeMessageSize(int fieldNumber, MessageLite value)

Compute the number of bytes that would be needed to encode an embedded message field, including tag.

Parameters
NameDescription
fieldNumberint
valueMessageLite
Returns
TypeDescription
int

computeMessageSizeNoTag(MessageLite value)

public static int computeMessageSizeNoTag(MessageLite value)

Compute the number of bytes that would be needed to encode an embedded message field.

Parameter
NameDescription
valueMessageLite
Returns
TypeDescription
int

computeRawMessageSetExtensionSize(int fieldNumber, ByteString value)

public static int computeRawMessageSetExtensionSize(int fieldNumber, ByteString value)

Compute the number of bytes that would be needed to encode an unparsed MessageSet extension field to the stream. For historical reasons, the wire format differs from normal fields.

Parameters
NameDescription
fieldNumberint
valueByteString
Returns
TypeDescription
int

computeRawVarint32Size(int value) (deprecated)

public static int computeRawVarint32Size(int value)

(deprecated) use #computeUInt32SizeNoTag(int) instead.

Compute the number of bytes that would be needed to encode a varint. value is treated as unsigned, so it won't be sign-extended if negative.

Parameter
NameDescription
valueint
Returns
TypeDescription
int

computeRawVarint64Size(long value) (deprecated)

public static int computeRawVarint64Size(long value)

(deprecated) use #computeUInt64SizeNoTag(long) instead.

Compute the number of bytes that would be needed to encode a varint.

Parameter
NameDescription
valuelong
Returns
TypeDescription
int

computeSFixed32Size(int fieldNumber, int value)

public static int computeSFixed32Size(int fieldNumber, int value)

Compute the number of bytes that would be needed to encode an sfixed32 field, including tag.

Parameters
NameDescription
fieldNumberint
valueint
Returns
TypeDescription
int

computeSFixed32SizeNoTag(int unused)

public static int computeSFixed32SizeNoTag(int unused)

Compute the number of bytes that would be needed to encode an sfixed32 field.

Parameter
NameDescription
unusedint
Returns
TypeDescription
int

computeSFixed64Size(int fieldNumber, long value)

public static int computeSFixed64Size(int fieldNumber, long value)

Compute the number of bytes that would be needed to encode an sfixed64 field, including tag.

Parameters
NameDescription
fieldNumberint
valuelong
Returns
TypeDescription
int

computeSFixed64SizeNoTag(long unused)

public static int computeSFixed64SizeNoTag(long unused)

Compute the number of bytes that would be needed to encode an sfixed64 field.

Parameter
NameDescription
unusedlong
Returns
TypeDescription
int

computeSInt32Size(int fieldNumber, int value)

public static int computeSInt32Size(int fieldNumber, int value)

Compute the number of bytes that would be needed to encode an sint32 field, including tag.

Parameters
NameDescription
fieldNumberint
valueint
Returns
TypeDescription
int

computeSInt32SizeNoTag(int value)

public static int computeSInt32SizeNoTag(int value)

Compute the number of bytes that would be needed to encode an sint32 field.

Parameter
NameDescription
valueint
Returns
TypeDescription
int

computeSInt64Size(int fieldNumber, long value)

public static int computeSInt64Size(int fieldNumber, long value)

Compute the number of bytes that would be needed to encode an sint64 field, including tag.

Parameters
NameDescription
fieldNumberint
valuelong
Returns
TypeDescription
int

computeSInt64SizeNoTag(long value)

public static int computeSInt64SizeNoTag(long value)

Compute the number of bytes that would be needed to encode an sint64 field.

Parameter
NameDescription
valuelong
Returns
TypeDescription
int

computeStringSize(int fieldNumber, String value)

public static int computeStringSize(int fieldNumber, String value)

Compute the number of bytes that would be needed to encode a string field, including tag.

Parameters
NameDescription
fieldNumberint
valueString
Returns
TypeDescription
int

computeStringSizeNoTag(String value)

public static int computeStringSizeNoTag(String value)

Compute the number of bytes that would be needed to encode a string field.

Parameter
NameDescription
valueString
Returns
TypeDescription
int

computeTagSize(int fieldNumber)

public static int computeTagSize(int fieldNumber)

Compute the number of bytes that would be needed to encode a tag.

Parameter
NameDescription
fieldNumberint
Returns
TypeDescription
int

computeUInt32Size(int fieldNumber, int value)

public static int computeUInt32Size(int fieldNumber, int value)

Compute the number of bytes that would be needed to encode a uint32 field, including tag.

Parameters
NameDescription
fieldNumberint
valueint
Returns
TypeDescription
int

computeUInt32SizeNoTag(int value)

public static int computeUInt32SizeNoTag(int value)

Compute the number of bytes that would be needed to encode a uint32 field.

Parameter
NameDescription
valueint
Returns
TypeDescription
int

computeUInt64Size(int fieldNumber, long value)

public static int computeUInt64Size(int fieldNumber, long value)

Compute the number of bytes that would be needed to encode a uint64 field, including tag.

Parameters
NameDescription
fieldNumberint
valuelong
Returns
TypeDescription
int

computeUInt64SizeNoTag(long value)

public static int computeUInt64SizeNoTag(long value)

Compute the number of bytes that would be needed to encode a uint64 field, including tag.

Parameter
NameDescription
valuelong
Returns
TypeDescription
int

encodeZigZag32(int n)

public static int encodeZigZag32(int n)

Encode a ZigZag-encoded 32-bit value. ZigZag encodes signed integers into values that can be efficiently encoded with varint. (Otherwise, negative values must be sign-extended to 64 bits to be varint encoded, thus always taking 10 bytes on the wire.)

Parameter
NameDescription
nint

A signed 32-bit integer.

Returns
TypeDescription
int

An unsigned 32-bit integer, stored in a signed int because Java has no explicit unsigned support.

encodeZigZag64(long n)

public static long encodeZigZag64(long n)

Encode a ZigZag-encoded 64-bit value. ZigZag encodes signed integers into values that can be efficiently encoded with varint. (Otherwise, negative values must be sign-extended to 64 bits to be varint encoded, thus always taking 10 bytes on the wire.)

Parameter
NameDescription
nlong

A signed 64-bit integer.

Returns
TypeDescription
long

An unsigned 64-bit integer, stored in a signed int because Java has no explicit unsigned support.

flush()

public abstract void flush()

Flushes the stream and forces any buffered bytes to be written. This does not flush the underlying OutputStream.

Exceptions
TypeDescription
IOException

getTotalBytesWritten()

public abstract int getTotalBytesWritten()

Get the total number of bytes successfully written to this stream. The returned value is not guaranteed to be accurate if exceptions have been found in the middle of writing.

Returns
TypeDescription
int

newInstance(byte[] flatArray)

public static CodedOutputStream newInstance(byte[] flatArray)

Create a new CodedOutputStream that writes directly to the given byte array. If more bytes are written than fit in the array, OutOfSpaceException will be thrown. Writing directly to a flat array is faster than writing to an OutputStream. See also ByteString#newCodedBuilder.

Parameter
NameDescription
flatArraybyte[]
Returns
TypeDescription
CodedOutputStream

newInstance(byte[] flatArray, int offset, int length)

public static CodedOutputStream newInstance(byte[] flatArray, int offset, int length)

Create a new CodedOutputStream that writes directly to the given byte array slice. If more bytes are written than fit in the slice, OutOfSpaceException will be thrown. Writing directly to a flat array is faster than writing to an OutputStream. See also ByteString#newCodedBuilder.

Parameters
NameDescription
flatArraybyte[]
offsetint
lengthint
Returns
TypeDescription
CodedOutputStream

newInstance(OutputStream output)

public static CodedOutputStream newInstance(OutputStream output)

Create a new CodedOutputStream wrapping the given OutputStream.

NOTE: The provided OutputStream MUST NOT retain access or modify the provided byte arrays. Doing so may result in corrupted data, which would be difficult to debug.

Parameter
NameDescription
outputOutputStream
Returns
TypeDescription
CodedOutputStream

newInstance(OutputStream output, int bufferSize)

public static CodedOutputStream newInstance(OutputStream output, int bufferSize)

Create a new CodedOutputStream wrapping the given OutputStream with a given buffer size.

NOTE: The provided OutputStream MUST NOT retain access or modify the provided byte arrays. Doing so may result in corrupted data, which would be difficult to debug.

Parameters
NameDescription
outputOutputStream
bufferSizeint
Returns
TypeDescription
CodedOutputStream

newInstance(ByteBuffer buffer)

public static CodedOutputStream newInstance(ByteBuffer buffer)

Create a new CodedOutputStream that writes to the given ByteBuffer.

Parameter
NameDescription
bufferByteBuffer
Returns
TypeDescription
CodedOutputStream

newInstance(ByteBuffer byteBuffer, int unused) (deprecated)

public static CodedOutputStream newInstance(ByteBuffer byteBuffer, int unused)

(deprecated) the size parameter is no longer used since use of an internal buffer is useless (and wasteful) when writing to a ByteBuffer. Use #newInstance(ByteBuffer) instead.

Create a new CodedOutputStream that writes to the given ByteBuffer.

Parameters
NameDescription
byteBufferByteBuffer
unusedint
Returns
TypeDescription
CodedOutputStream

spaceLeft()

public abstract int spaceLeft()

If writing to a flat array, return the space left in the array. Otherwise, throws UnsupportedOperationException.

Returns
TypeDescription
int

useDeterministicSerialization()

public void useDeterministicSerialization()

Configures serialization to be deterministic.

The deterministic serialization guarantees that for a given binary, equal (defined by the equals() methods in protos) messages will always be serialized to the same bytes. This implies:

  • repeated serialization of a message will return the same bytes
  • different processes of the same binary (which may be executing on different machines) will serialize equal messages to the same bytes.

Note the deterministic serialization is NOT canonical across languages; it is also unstable across different builds with schema changes due to unknown fields. Users who need canonical serialization, e.g. persistent storage in a canonical form, fingerprinting, etc, should define their own canonicalization specification and implement the serializer using reflection APIs rather than relying on this API.

Once set, the serializer will: (Note this is an implementation detail and may subject to change in the future)

  • sort map entries by keys in lexicographical order or numerical order. Note: For string keys, the order is based on comparing the Unicode value of each character in the strings. The order may be different from the deterministic serialization in other languages where maps are sorted on the lexicographical order of the UTF8 encoded keys.

write(byte value)

public abstract void write(byte value)

Writes a single byte.

Parameter
NameDescription
valuebyte
Overrides Exceptions
TypeDescription
IOException

write(byte[] value, int offset, int length)

public abstract void write(byte[] value, int offset, int length)

Writes a sequence of bytes. The ByteOutput must copy value if it will not be processed prior to the return of this method call, since value may be reused/altered by the caller.

NOTE: This method MUST NOT modify the value. Doing so is a programming error and will lead to data corruption which will be difficult to debug.

Parameters
NameDescription
valuebyte[]
offsetint
lengthint
Overrides Exceptions
TypeDescription
IOException

write(ByteBuffer value)

public abstract void write(ByteBuffer value)

Writes a sequence of bytes. The ByteOutput must copy value if it will not be processed prior to the return of this method call, since value may be reused/altered by the caller.

NOTE: This method MUST NOT modify the value. Doing so is a programming error and will lead to data corruption which will be difficult to debug.

Parameter
NameDescription
valueByteBuffer
Overrides Exceptions
TypeDescription
IOException

writeBool(int fieldNumber, boolean value)

public abstract void writeBool(int fieldNumber, boolean value)

Write a bool field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valueboolean
Exceptions
TypeDescription
IOException

writeBoolNoTag(boolean value)

public final void writeBoolNoTag(boolean value)

Write a bool field to the stream.

Parameter
NameDescription
valueboolean
Exceptions
TypeDescription
IOException

writeByteArray(int fieldNumber, byte[] value)

public abstract void writeByteArray(int fieldNumber, byte[] value)

Write a bytes field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valuebyte[]
Exceptions
TypeDescription
IOException

writeByteArray(int fieldNumber, byte[] value, int offset, int length)

public abstract void writeByteArray(int fieldNumber, byte[] value, int offset, int length)

Write a bytes field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valuebyte[]
offsetint
lengthint
Exceptions
TypeDescription
IOException

writeByteArrayNoTag(byte[] value)

public final void writeByteArrayNoTag(byte[] value)

Write a bytes field to the stream.

Parameter
NameDescription
valuebyte[]
Exceptions
TypeDescription
IOException

writeByteBuffer(int fieldNumber, ByteBuffer value)

public abstract void writeByteBuffer(int fieldNumber, ByteBuffer value)

Write a bytes field, including tag, to the stream. This method will write all content of the ByteBuffer regardless of the current position and limit (i.e., the number of bytes to be written is value.capacity(), not value.remaining()). Furthermore, this method doesn't alter the state of the passed-in ByteBuffer. Its position, limit, mark, etc. will remain unchanged. If you only want to write the remaining bytes of a ByteBuffer, you can call writeByteBuffer(fieldNumber, byteBuffer.slice()).

Parameters
NameDescription
fieldNumberint
valueByteBuffer
Exceptions
TypeDescription
IOException

writeBytes(int fieldNumber, ByteString value)

public abstract void writeBytes(int fieldNumber, ByteString value)

Write a bytes field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valueByteString
Exceptions
TypeDescription
IOException

writeBytesNoTag(ByteString value)

public abstract void writeBytesNoTag(ByteString value)

Write a bytes field to the stream.

Parameter
NameDescription
valueByteString
Exceptions
TypeDescription
IOException

writeDouble(int fieldNumber, double value)

public final void writeDouble(int fieldNumber, double value)

Write a double field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valuedouble
Exceptions
TypeDescription
IOException

writeDoubleNoTag(double value)

public final void writeDoubleNoTag(double value)

Write a double field to the stream.

Parameter
NameDescription
valuedouble
Exceptions
TypeDescription
IOException

writeEnum(int fieldNumber, int value)

public final void writeEnum(int fieldNumber, int value)

Write an enum field, including tag, to the stream. The provided value is the numeric value used to represent the enum value on the wire (not the enum ordinal value).

Parameters
NameDescription
fieldNumberint
valueint
Exceptions
TypeDescription
IOException

writeEnumNoTag(int value)

public final void writeEnumNoTag(int value)

Write an enum field to the stream. The provided value is the numeric value used to represent the enum value on the wire (not the enum ordinal value).

Parameter
NameDescription
valueint
Exceptions
TypeDescription
IOException

writeFixed32(int fieldNumber, int value)

public abstract void writeFixed32(int fieldNumber, int value)

Write a fixed32 field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valueint
Exceptions
TypeDescription
IOException

writeFixed32NoTag(int value)

public abstract void writeFixed32NoTag(int value)

Write a fixed32 field to the stream.

Parameter
NameDescription
valueint
Exceptions
TypeDescription
IOException

writeFixed64(int fieldNumber, long value)

public abstract void writeFixed64(int fieldNumber, long value)

Write a fixed64 field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valuelong
Exceptions
TypeDescription
IOException

writeFixed64NoTag(long value)

public abstract void writeFixed64NoTag(long value)

Write a fixed64 field to the stream.

Parameter
NameDescription
valuelong
Exceptions
TypeDescription
IOException

writeFloat(int fieldNumber, float value)

public final void writeFloat(int fieldNumber, float value)

Write a float field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valuefloat
Exceptions
TypeDescription
IOException

writeFloatNoTag(float value)

public final void writeFloatNoTag(float value)

Write a float field to the stream.

Parameter
NameDescription
valuefloat
Exceptions
TypeDescription
IOException

writeGroup(int fieldNumber, MessageLite value) (deprecated)

public final void writeGroup(int fieldNumber, MessageLite value)

(deprecated) groups are deprecated.

Write a group field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valueMessageLite
Exceptions
TypeDescription
IOException

writeGroupNoTag(MessageLite value) (deprecated)

public final void writeGroupNoTag(MessageLite value)

(deprecated) groups are deprecated.

Write a group field to the stream.

Parameter
NameDescription
valueMessageLite
Exceptions
TypeDescription
IOException

writeInt32(int fieldNumber, int value)

public abstract void writeInt32(int fieldNumber, int value)

Write an int32 field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valueint
Exceptions
TypeDescription
IOException

writeInt32NoTag(int value)

public abstract void writeInt32NoTag(int value)

Write an int32 field to the stream.

Parameter
NameDescription
valueint
Exceptions
TypeDescription
IOException

writeInt64(int fieldNumber, long value)

public final void writeInt64(int fieldNumber, long value)

Write an int64 field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valuelong
Exceptions
TypeDescription
IOException

writeInt64NoTag(long value)

public final void writeInt64NoTag(long value)

Write an int64 field to the stream.

Parameter
NameDescription
valuelong
Exceptions
TypeDescription
IOException

writeLazy(byte[] value, int offset, int length)

public abstract void writeLazy(byte[] value, int offset, int length)

Writes a sequence of bytes. The ByteOutput is free to retain a reference to the value beyond the scope of this method call (e.g. write later) since it is considered immutable and is guaranteed not to change by the caller.

NOTE: This method MUST NOT modify the value. Doing so is a programming error and will lead to data corruption which will be difficult to debug.

Parameters
NameDescription
valuebyte[]
offsetint
lengthint
Overrides Exceptions
TypeDescription
IOException

writeLazy(ByteBuffer value)

public abstract void writeLazy(ByteBuffer value)

Writes a sequence of bytes. The ByteOutput is free to retain a reference to the value beyond the scope of this method call (e.g. write later) since it is considered immutable and is guaranteed not to change by the caller.

NOTE: This method MUST NOT modify the value. Doing so is a programming error and will lead to data corruption which will be difficult to debug.

Parameter
NameDescription
valueByteBuffer
Overrides Exceptions
TypeDescription
IOException

writeMessage(int fieldNumber, MessageLite value)

public abstract void writeMessage(int fieldNumber, MessageLite value)

Write an embedded message field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valueMessageLite
Exceptions
TypeDescription
IOException

writeMessageNoTag(MessageLite value)

public abstract void writeMessageNoTag(MessageLite value)

Write an embedded message field to the stream.

Parameter
NameDescription
valueMessageLite
Exceptions
TypeDescription
IOException

writeMessageSetExtension(int fieldNumber, MessageLite value)

public abstract void writeMessageSetExtension(int fieldNumber, MessageLite value)

Write a MessageSet extension field to the stream. For historical reasons, the wire format differs from normal fields.

Parameters
NameDescription
fieldNumberint
valueMessageLite
Exceptions
TypeDescription
IOException

writeRawByte(byte value)

public final void writeRawByte(byte value)

Write a single byte.

Parameter
NameDescription
valuebyte
Exceptions
TypeDescription
IOException

writeRawByte(int value)

public final void writeRawByte(int value)

Write a single byte, represented by an integer value.

Parameter
NameDescription
valueint
Exceptions
TypeDescription
IOException

writeRawBytes(byte[] value)

public final void writeRawBytes(byte[] value)

Write an array of bytes.

Parameter
NameDescription
valuebyte[]
Exceptions
TypeDescription
IOException

writeRawBytes(byte[] value, int offset, int length)

public final void writeRawBytes(byte[] value, int offset, int length)

Write part of an array of bytes.

Parameters
NameDescription
valuebyte[]
offsetint
lengthint
Exceptions
TypeDescription
IOException

writeRawBytes(ByteString value)

public final void writeRawBytes(ByteString value)

Write a byte string.

Parameter
NameDescription
valueByteString
Exceptions
TypeDescription
IOException

writeRawBytes(ByteBuffer value)

public abstract void writeRawBytes(ByteBuffer value)

Write a ByteBuffer. This method will write all content of the ByteBuffer regardless of the current position and limit (i.e., the number of bytes to be written is value.capacity(), not value.remaining()). Furthermore, this method doesn't alter the state of the passed-in ByteBuffer. Its position, limit, mark, etc. will remain unchanged. If you only want to write the remaining bytes of a ByteBuffer, you can call writeRawBytes(byteBuffer.slice()).

Parameter
NameDescription
valueByteBuffer
Exceptions
TypeDescription
IOException

writeRawLittleEndian32(int value) (deprecated)

public final void writeRawLittleEndian32(int value)

(deprecated) Use #writeFixed32NoTag instead.

Write a little-endian 32-bit integer.

Parameter
NameDescription
valueint
Exceptions
TypeDescription
IOException

writeRawLittleEndian64(long value) (deprecated)

public final void writeRawLittleEndian64(long value)

(deprecated) Use #writeFixed64NoTag instead.

Write a little-endian 64-bit integer.

Parameter
NameDescription
valuelong
Exceptions
TypeDescription
IOException

writeRawMessageSetExtension(int fieldNumber, ByteString value)

public abstract void writeRawMessageSetExtension(int fieldNumber, ByteString value)

Write an unparsed MessageSet extension field to the stream. For historical reasons, the wire format differs from normal fields.

Parameters
NameDescription
fieldNumberint
valueByteString
Exceptions
TypeDescription
IOException

writeRawVarint32(int value) (deprecated)

public final void writeRawVarint32(int value)

(deprecated) use #writeUInt32NoTag instead.

Encode and write a varint. value is treated as unsigned, so it won't be sign-extended if negative.

Parameter
NameDescription
valueint
Exceptions
TypeDescription
IOException

writeRawVarint64(long value) (deprecated)

public final void writeRawVarint64(long value)

(deprecated) use #writeUInt64NoTag instead.

Encode and write a varint.

Parameter
NameDescription
valuelong
Exceptions
TypeDescription
IOException

writeSFixed32(int fieldNumber, int value)

public final void writeSFixed32(int fieldNumber, int value)

Write an sfixed32 field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valueint
Exceptions
TypeDescription
IOException

writeSFixed32NoTag(int value)

public final void writeSFixed32NoTag(int value)

Write a sfixed32 field to the stream.

Parameter
NameDescription
valueint
Exceptions
TypeDescription
IOException

writeSFixed64(int fieldNumber, long value)

public final void writeSFixed64(int fieldNumber, long value)

Write an sfixed64 field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valuelong
Exceptions
TypeDescription
IOException

writeSFixed64NoTag(long value)

public final void writeSFixed64NoTag(long value)

Write a sfixed64 field to the stream.

Parameter
NameDescription
valuelong
Exceptions
TypeDescription
IOException

writeSInt32(int fieldNumber, int value)

public final void writeSInt32(int fieldNumber, int value)

Write a sint32 field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valueint
Exceptions
TypeDescription
IOException

writeSInt32NoTag(int value)

public final void writeSInt32NoTag(int value)

Write a sint32 field to the stream.

Parameter
NameDescription
valueint
Exceptions
TypeDescription
IOException

writeSInt64(int fieldNumber, long value)

public final void writeSInt64(int fieldNumber, long value)

Write an sint64 field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valuelong
Exceptions
TypeDescription
IOException

writeSInt64NoTag(long value)

public final void writeSInt64NoTag(long value)

Write a sint64 field to the stream.

Parameter
NameDescription
valuelong
Exceptions
TypeDescription
IOException

writeString(int fieldNumber, String value)

public abstract void writeString(int fieldNumber, String value)

Write a string field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valueString
Exceptions
TypeDescription
IOException

writeStringNoTag(String value)

public abstract void writeStringNoTag(String value)

Write a string field to the stream.

Parameter
NameDescription
valueString
Exceptions
TypeDescription
IOException

writeTag(int fieldNumber, int wireType)

public abstract void writeTag(int fieldNumber, int wireType)

Encode and write a tag.

Parameters
NameDescription
fieldNumberint
wireTypeint
Exceptions
TypeDescription
IOException

writeUInt32(int fieldNumber, int value)

public abstract void writeUInt32(int fieldNumber, int value)

Write a uint32 field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valueint
Exceptions
TypeDescription
IOException

writeUInt32NoTag(int value)

public abstract void writeUInt32NoTag(int value)

Write a uint32 field to the stream.

Parameter
NameDescription
valueint
Exceptions
TypeDescription
IOException

writeUInt64(int fieldNumber, long value)

public abstract void writeUInt64(int fieldNumber, long value)

Write a uint64 field, including tag, to the stream.

Parameters
NameDescription
fieldNumberint
valuelong
Exceptions
TypeDescription
IOException

writeUInt64NoTag(long value)

public abstract void writeUInt64NoTag(long value)

Write a uint64 field to the stream.

Parameter
NameDescription
valuelong
Exceptions
TypeDescription
IOException