public final class ByteBuffersDataOutput extends DataOutput implements Accountable
DataOutput
storing data in a list of ByteBuffer
s.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, writeZLong
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getChildResources
public 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)
DataOutput
The 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 DataOutput
DataInput.readByte()
public void writeBytes(byte[] src, int offset, int length)
DataOutput
writeBytes
in class DataOutput
src
- 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)
DataOutput
writeBytes
in class DataOutput
b
- 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()
size()
of the underlying buffers exceeds maximum size of Java array, an
RuntimeException
will be thrown.public void copyTo(DataOutput output) throws IOException
DataOutput
.IOException
public long size()
public void writeShort(short v)
DataOutput
writeShort
in class DataOutput
DataInput.readShort()
public void writeInt(int v)
DataOutput
32-bit unsigned integer written as four bytes, high-order bytes first.
writeInt
in class DataOutput
DataInput.readInt()
public void writeLong(long v)
DataOutput
64-bit unsigned integer written as eight bytes, high-order bytes first.
writeLong
in class DataOutput
DataInput.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 DataOutput
DataInput.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
String
s.
writeMapOfStrings
in class DataOutput
map
- 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 DataOutput
set
- Input set.public long ramBytesUsed()
Accountable
ramBytesUsed
in interface Accountable
public void reset()
public static ByteBuffersDataOutput newResettableInstance()
ByteBuffersDataOutput
with the reset()
capability.Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.