public final class ByteBuffersDataOutput extends DataOutput implements Accountable
DataOutput storing data in a list of ByteBuffers.| Modifier and Type | Class and Description |
|---|---|
static class |
ByteBuffersDataOutput.ByteBufferRecycler
An implementation of a
ByteBuffer allocation and recycling policy. |
| Modifier and Type | Field and Description |
|---|---|
static IntFunction<ByteBuffer> |
ALLOCATE_BB_ON_HEAP |
static int |
DEFAULT_MAX_BITS_PER_BLOCK |
static int |
DEFAULT_MIN_BITS_PER_BLOCK |
static Consumer<ByteBuffer> |
NO_REUSE
A singleton instance of "no-reuse" buffer strategy.
|
| Constructor and Description |
|---|
ByteBuffersDataOutput() |
ByteBuffersDataOutput(int minBitsPerBlock,
int maxBitsPerBlock,
IntFunction<ByteBuffer> blockAllocate,
Consumer<ByteBuffer> blockReuse) |
ByteBuffersDataOutput(long expectedSize) |
| Modifier and Type | Method and Description |
|---|---|
void |
copyTo(DataOutput output)
Copy the current content of this object into another
DataOutput. |
static ByteBuffersDataOutput |
newResettableInstance() |
long |
ramBytesUsed()
Return the memory usage of this object in bytes.
|
void |
reset()
This method resets this object to a clean (zero-size) state and
publishes any currently allocated buffers for reuse to the reuse strategy
provided in the constructor.
|
long |
size() |
byte[] |
toArrayCopy()
Return a contiguous array with the current content written to the output.
|
ArrayList<ByteBuffer> |
toBufferList()
Return a list of read-only view of
ByteBuffer blocks over the
current content written to the output. |
ByteBuffersDataInput |
toDataInput()
Return a
ByteBuffersDataInput for the set of current buffers (toBufferList()). |
String |
toString() |
ArrayList<ByteBuffer> |
toWriteableBufferList()
Returns a list of writeable blocks over the (source) content buffers.
|
void |
writeByte(byte b)
Writes a single byte.
|
void |
writeBytes(byte[] b) |
void |
writeBytes(byte[] b,
int length)
Writes an array of bytes.
|
void |
writeBytes(byte[] src,
int offset,
int length)
Writes an array of bytes.
|
void |
writeBytes(ByteBuffer buffer) |
void |
writeInt(int v)
Writes an int as four bytes.
|
void |
writeLong(long v)
Writes a long as eight bytes.
|
void |
writeMapOfStrings(Map<String,String> map)
Writes a String map.
|
void |
writeSetOfStrings(Set<String> set)
Writes a String set.
|
void |
writeShort(short v)
Writes a short as two bytes.
|
void |
writeString(String v)
Writes a string.
|
copyBytes, writeVInt, writeVLong, writeZInt, writeZLongclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetChildResourcespublic static final IntFunction<ByteBuffer> ALLOCATE_BB_ON_HEAP
public static final Consumer<ByteBuffer> NO_REUSE
public static final int DEFAULT_MIN_BITS_PER_BLOCK
public static final int DEFAULT_MAX_BITS_PER_BLOCK
public ByteBuffersDataOutput(long expectedSize)
public ByteBuffersDataOutput()
public ByteBuffersDataOutput(int minBitsPerBlock,
int maxBitsPerBlock,
IntFunction<ByteBuffer> blockAllocate,
Consumer<ByteBuffer> blockReuse)
public void writeByte(byte b)
DataOutputThe most primitive data type is an eight-bit byte. Files are accessed as sequences of bytes. All other data types are defined as sequences of bytes, so file formats are byte-order independent.
writeByte in class DataOutputDataInput.readByte()public void writeBytes(byte[] src,
int offset,
int length)
DataOutputwriteBytes in class DataOutputsrc - the bytes to writeoffset - the offset in the byte arraylength - the number of bytes to writeDataInput.readBytes(byte[],int,int)public void writeBytes(byte[] b,
int length)
DataOutputwriteBytes in class DataOutputb - the bytes to writelength - the number of bytes to writeDataInput.readBytes(byte[],int,int)public void writeBytes(byte[] b)
public void writeBytes(ByteBuffer buffer)
public ArrayList<ByteBuffer> toBufferList()
ByteBuffer blocks over the
current content written to the output.public ArrayList<ByteBuffer> toWriteableBufferList()
toBufferList() which returns a read-only view over
the content of the source buffers.
The difference between toBufferList() and toWriteableBufferList() is that
read-only view of source buffers will always return false from ByteBuffer.hasArray()
(which sometimes may be required to avoid double copying).public ByteBuffersDataInput toDataInput()
ByteBuffersDataInput for the set of current buffers (toBufferList()).public byte[] toArrayCopy()
public void copyTo(DataOutput output) throws IOException
DataOutput.IOExceptionpublic long size()
public void writeShort(short v)
DataOutputwriteShort in class DataOutputDataInput.readShort()public void writeInt(int v)
DataOutput32-bit unsigned integer written as four bytes, high-order bytes first.
writeInt in class DataOutputDataInput.readInt()public void writeLong(long v)
DataOutput64-bit unsigned integer written as eight bytes, high-order bytes first.
writeLong in class DataOutputDataInput.readLong()public void writeString(String v)
DataOutput
Writes strings as UTF-8 encoded bytes. First the length, in bytes, is
written as a VInt, followed by the bytes.
writeString in class DataOutputDataInput.readString()public void writeMapOfStrings(Map<String,String> map)
DataOutput
First the size is written as an vInt,
followed by each key-value pair written as two consecutive
Strings.
writeMapOfStrings in class DataOutputmap - Input map.public void writeSetOfStrings(Set<String> set)
DataOutput
First the size is written as an vInt,
followed by each value written as a
String.
writeSetOfStrings in class DataOutputset - Input set.public long ramBytesUsed()
AccountableramBytesUsed in interface Accountablepublic void reset()
public static ByteBuffersDataOutput newResettableInstance()
ByteBuffersDataOutput with the reset() capability.Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.