@InterfaceAudience.Public @InterfaceStability.Evolving public final class ByteBufferUtils extends Object
Modifier and Type | Method and Description |
---|---|
static boolean |
arePartsEqual(ByteBuffer buffer,
int offsetLeft,
int lengthLeft,
int offsetRight,
int lengthRight)
Check whether two parts in the same buffer are equal.
|
static int |
compareTo(ByteBuffer buf1,
int o1,
int len1,
ByteBuffer buf2,
int o2,
int len2) |
static void |
copyBufferToStream(OutputStream out,
ByteBuffer in,
int offset,
int length)
Copy data from a buffer to an output stream.
|
static void |
copyFromBufferToBuffer(ByteBuffer out,
ByteBuffer in,
int sourceOffset,
int length)
Copy from one buffer to another from given offset.
|
static void |
copyFromBufferToBuffer(ByteBuffer out,
ByteBuffer in,
int sourceOffset,
int destinationOffset,
int length)
Copy from one buffer to another from given offset.
|
static void |
copyFromStreamToBuffer(ByteBuffer out,
DataInputStream in,
int length)
Copy the given number of bytes from the given stream and put it at the
current position of the given buffer, updating the position in the buffer.
|
static ByteBuffer |
drainInputStreamToBuffer(InputStream is)
Copy from the InputStream to a new heap ByteBuffer until the InputStream is exhausted.
|
static void |
extendLimit(ByteBuffer buffer,
int numBytes) |
static int |
findCommonPrefix(byte[] left,
int leftOffset,
int leftLength,
byte[] right,
int rightOffset,
int rightLength)
Find length of common prefix in two arrays.
|
static int |
findCommonPrefix(ByteBuffer buffer,
int offsetLeft,
int offsetRight,
int limit)
Find length of common prefix of two parts in the buffer
|
static int |
intFitsIn(int value)
Check how many bytes is required to store value.
|
static int |
longFitsIn(long value)
Check how many bytes are required to store value.
|
static void |
moveBufferToStream(OutputStream out,
ByteBuffer in,
int length)
Copy the data to the output stream and update position in buffer.
|
static int |
putCompressedInt(OutputStream out,
int value)
Put in buffer integer using 7 bit encoding.
|
static void |
putInt(OutputStream out,
int value)
Put in output stream 32 bit integer (Big Endian byte order).
|
static int |
putLong(OutputStream out,
long value,
int fitInBytes) |
static int |
readCompressedInt(ByteBuffer buffer)
Read integer from buffer coded in 7 bits and increment position.
|
static int |
readCompressedInt(InputStream input)
Read integer from stream coded in 7 bits and increment position.
|
static long |
readLong(ByteBuffer in,
int fitInBytes)
Read long which was written to fitInBytes bytes and increment position.
|
static long |
readLong(InputStream in,
int fitInBytes)
Read long which was written to fitInBytes bytes and increment position.
|
static long |
readVLong(ByteBuffer in)
Similar to
WritableUtils.readVLong(DataInput) but reads from a
ByteBuffer . |
static void |
skip(ByteBuffer buffer,
int length)
Increment position in buffer.
|
static byte[] |
toBytes(ByteBuffer buffer,
int startPosition)
Copy the bytes from position to limit into a new byte[] of the exact length and sets the
position and limit back to their original values (though not thread safe).
|
static byte[] |
toBytes(ByteBuffer buffer,
int offset,
int length)
Copy the given number of bytes from specified offset into a new byte[]
|
static void |
writeVLong(ByteBuffer out,
long i)
Similar to
WritableUtils.writeVLong(java.io.DataOutput, long) ,
but writes to a ByteBuffer . |
public static void writeVLong(ByteBuffer out, long i)
WritableUtils.writeVLong(java.io.DataOutput, long)
,
but writes to a ByteBuffer
.public static long readVLong(ByteBuffer in)
WritableUtils.readVLong(DataInput)
but reads from a
ByteBuffer
.public static int putCompressedInt(OutputStream out, int value) throws IOException
value
- Int to be compressed.out
- Where to put compressed dataIOException
- on stream errorpublic static void putInt(OutputStream out, int value) throws IOException
out
- Where to put integer.value
- Value of integer.IOException
- On stream error.public static void moveBufferToStream(OutputStream out, ByteBuffer in, int length) throws IOException
out
- the stream to write bytes toin
- the buffer to read bytes fromlength
- the number of bytes to copyIOException
public static void copyBufferToStream(OutputStream out, ByteBuffer in, int offset, int length) throws IOException
out
- the stream to write bytes toin
- the buffer to read bytes fromoffset
- the offset in the buffer (from the buffer's array offset)
to start copying bytes fromlength
- the number of bytes to copyIOException
public static int putLong(OutputStream out, long value, int fitInBytes) throws IOException
IOException
public static int longFitsIn(long value)
value
- Value which size will be tested.public static int intFitsIn(int value)
value
- Value which size will be tested.public static int readCompressedInt(InputStream input) throws IOException
IOException
public static int readCompressedInt(ByteBuffer buffer)
public static long readLong(InputStream in, int fitInBytes) throws IOException
fitInBytes
- In how many bytes given long is stored.IOException
public static long readLong(ByteBuffer in, int fitInBytes)
fitInBytes
- In how many bytes given long is stored.public static void copyFromStreamToBuffer(ByteBuffer out, DataInputStream in, int length) throws IOException
out
- the buffer to write data toin
- the stream to read data fromlength
- the number of bytes to read/writeIOException
public static ByteBuffer drainInputStreamToBuffer(InputStream is) throws IOException
IOException
public static void copyFromBufferToBuffer(ByteBuffer out, ByteBuffer in, int sourceOffset, int length)
Note : This will advance the position marker of out
but not change the position maker
for in
out
- destination bufferin
- source buffersourceOffset
- offset in the source bufferlength
- how many bytes to copypublic static void copyFromBufferToBuffer(ByteBuffer out, ByteBuffer in, int sourceOffset, int destinationOffset, int length)
out
- in
- sourceOffset
- destinationOffset
- length
- public static int findCommonPrefix(ByteBuffer buffer, int offsetLeft, int offsetRight, int limit)
buffer
- Where parts are located.offsetLeft
- Offset of the first part.offsetRight
- Offset of the second part.limit
- Maximal length of common prefix.public static int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right, int rightOffset, int rightLength)
left
- Array to be compared.leftOffset
- Offset in left array.leftLength
- Length of left array.right
- Array to be compared.rightOffset
- Offset in right array.rightLength
- Length of right array.public static boolean arePartsEqual(ByteBuffer buffer, int offsetLeft, int lengthLeft, int offsetRight, int lengthRight)
buffer
- In which buffer there are partsoffsetLeft
- Beginning of first part.lengthLeft
- Length of the first part.offsetRight
- Beginning of the second part.lengthRight
- Length of the second part.public static void skip(ByteBuffer buffer, int length)
buffer
- In this buffer.length
- By that many bytes.public static void extendLimit(ByteBuffer buffer, int numBytes)
public static byte[] toBytes(ByteBuffer buffer, int startPosition)
buffer
- copy from herestartPosition
- put buffer.get(startPosition) into byte[0]public static byte[] toBytes(ByteBuffer buffer, int offset, int length)
buffer
- offset
- length
- public static int compareTo(ByteBuffer buf1, int o1, int len1, ByteBuffer buf2, int o2, int len2)
Copyright © 2007–2019 The Apache Software Foundation. All rights reserved.