public abstract class BinaryEncoder extends Encoder
Encoder for Avro's binary encoding.
 
 To construct and configure instances, use EncoderFactory| Constructor and Description | 
|---|
| BinaryEncoder() | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract int | bytesBuffered()Returns the number of bytes currently buffered by this encoder. | 
| void | setItemCount(long itemCount)Call this method before writing a batch of items in an array or a map. | 
| void | startItem()Start a new item of an array or map. | 
| void | writeArrayEnd()Call this method to finish writing an array. | 
| void | writeArrayStart()Call this method to start writing an array. | 
| void | writeBytes(byte[] bytes,
          int start,
          int len)Write a byte string. | 
| void | writeBytes(ByteBuffer bytes)Write a byte string. | 
| void | writeEnum(int e)Writes an enumeration. | 
| void | writeIndex(int unionIndex)Call this method to write the tag of a union. | 
| void | writeMapEnd()Call this method to terminate the inner-most, currently-opened map. | 
| void | writeMapStart()Call this to start a new map. | 
| void | writeNull()"Writes" a null value. | 
| void | writeString(String string)Write a Unicode character string. | 
| void | writeString(Utf8 utf8)Write a Unicode character string. | 
| protected abstract void | writeZero()Write a zero byte to the underlying output. | 
writeBoolean, writeBytes, writeDouble, writeFixed, writeFixed, writeFixed, writeFloat, writeInt, writeLong, writeStringpublic void writeNull()
               throws IOException
EncoderwriteNull in class EncoderIOExceptionpublic void writeString(Utf8 utf8) throws IOException
EncoderwriteString in class EncoderIOExceptionpublic void writeString(String string) throws IOException
EncoderUtf8. Some Encoder implementations
 may want to do something different as a performance optimization.writeString in class EncoderIOExceptionpublic void writeBytes(ByteBuffer bytes) throws IOException
EncoderwriteBytes in class EncoderIOExceptionpublic void writeBytes(byte[] bytes,
                       int start,
                       int len)
                throws IOException
EncoderwriteBytes in class EncoderIOExceptionpublic void writeEnum(int e)
               throws IOException
EncoderwriteEnum in class EncoderIOExceptionpublic void writeArrayStart()
                     throws IOException
EncoderEncoder.writeArrayStart(). Then,
 before writing any data for any item call Encoder.setItemCount(long) followed by a
 sequence of Encoder.startItem() and the item itself. The number of
 Encoder.startItem() should match the number specified in
 Encoder.setItemCount(long). When actually writing the data of the item, you can
 call any Encoder method (e.g., Encoder.writeLong(long)). When all items of
 the array have been written, call Encoder.writeArrayEnd().
 As an example, let's say you want to write an array of records, the record
 consisting of an Long field and a Boolean field. Your code would look
 something like this:
 
 
 out.writeArrayStart();
 out.setItemCount(list.size());
 for (Record r : list) {
   out.startItem();
   out.writeLong(r.longField);
   out.writeBoolean(r.boolField);
 }
 out.writeArrayEnd();
 writeArrayStart in class EncoderIOExceptionpublic void setItemCount(long itemCount)
                  throws IOException
EncoderEncoder.startItem() followed by any of the other write
 methods of Encoder. The number of calls to Encoder.startItem() must
 be equal to the count specified in Encoder.setItemCount(long). Once a batch is
 completed you can start another batch with Encoder.setItemCount(long).setItemCount in class EncoderitemCount - The number of Encoder.startItem() calls to follow.IOExceptionpublic void startItem()
               throws IOException
EncoderEncoder.writeArrayStart() for usage
 information.startItem in class EncoderIOExceptionpublic void writeArrayEnd()
                   throws IOException
EncoderEncoder.writeArrayStart() for
 usage information.writeArrayEnd in class EncoderIOExceptionpublic void writeMapStart()
                   throws IOException
EncoderEncoder.writeArrayStart() for details on
 usage.
 As an example of usage, let's say you want to write a map of records, the
 record consisting of an Long field and a Boolean field. Your code would look
 something like this:
 
 out.writeMapStart(); out.setItemCount(list.size()); for (Map.Entryentry : map.entrySet()) { out.startItem(); out.writeString(entry.getKey()); out.writeLong(entry.getValue().longField); out.writeBoolean(entry.getValue().boolField); } out.writeMapEnd(); 
writeMapStart in class EncoderIOExceptionpublic void writeMapEnd()
                 throws IOException
EncoderEncoder.writeArrayStart() for more details.writeMapEnd in class EncoderIOExceptionpublic void writeIndex(int unionIndex)
                throws IOException
Encoderout.writeIndex(1); out.writeLong(record.longField); out.writeBoolean(record.boolField);
writeIndex in class EncoderIOExceptionprotected abstract void writeZero()
                           throws IOException
IOExceptionpublic abstract int bytesBuffered()
Flushable.flush() to empty the buffer to the underlying output.Copyright © 2009–2020 The Apache Software Foundation. All rights reserved.