Java examples for java.nio:ByteBuffer Array
This is a relative bulk get method for ByteBuffer that returns the array of bytes gotten.
//package com.java2s; import java.nio.ByteBuffer; public class Main { /**/*w ww. j a v a 2 s .co m*/ * This is a relative bulk get method for {@link ByteBuffer} that returns * the array of bytes gotten. It is a convenience method so the array * doesn't have to be declared beforehand. * * @param buf The {@link ByteBuffer} to get bytes from. * @param length The number of bytes to be copied. * @return Returns an array of the bytes gotten. * @throws BufferUnderflowException if there are fewer than * <code>length</code> bytes remaining in the buffer. */ public static byte[] getBytes(ByteBuffer buf, int length) { final byte[] dst = new byte[length]; buf.get(dst, 0, length); return dst; } /** * This is an absolute bulk get method for {@link ByteBuffer} because it * doesn't have one (but should!). Being absolute, the * {@link ByteBuffer}'s position doesn't change. * * @param buf The {@link ByteBuffer} to get bytes from. * @param offset The absolute offset within the {@link ByteBuffer} of the * first byte to be read; must be non-negative. * @param length The number of bytes to be copied. * @return Returns an array of the bytes gotten. * @throws BufferUnderflowException if there are fewer than * <code>length</code> bytes in the buffer starting at the given offset. * @throws IllegalArgumentException if the offset is either negative or * beyond the buffer's limit. */ public static byte[] getBytes(ByteBuffer buf, int offset, int length) { final byte[] dst = new byte[length]; getBytes(buf, offset, dst, 0, length); return dst; } /** * This is an absolute bulk get method for {@link ByteBuffer} because it * doesn't have one (but should!). Being absolute, the * {@link ByteBuffer}'s position doesn't change. * * @param buf The {@link ByteBuffer} to get bytes from. * @param bufOffset The absolute offset within the {@link ByteBuffer} of * the first byte to be read; must be non-negative. * @param dst The array into which bytes are to be written. * @param dstOffset The offset within the destination array to start * writing bytes. * @param length The number of bytes to be copied. * @throws BufferUnderflowException if there are fewer than * <code>length</code> bytes in the buffer starting at the given offset. * @throws IllegalArgumentException if the offset is either negative or * beyond the buffer's limit. */ public static void getBytes(ByteBuffer buf, int bufOffset, byte[] dst, int dstOffset, int length) { final int origPos = buf.position(); buf.position(bufOffset); buf.get(dst, dstOffset, length); buf.position(origPos); } }