欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java bytebuffer,

来源: javaer 分享于  点击 26699 次 点评:74

java bytebuffer,


import java.nio.ByteBuffer;
import java.nio.ByteOrder;
public class bytebuffertest {

	public static void main(String[] args)
	{
		// Create a ByteBuffer using a byte array
		byte[] bytes = new byte[10];
		ByteBuffer buf = ByteBuffer.wrap(bytes);

		// Create a non-direct ByteBuffer with a 10 byte capacity
		// The underlying storage is a byte array.
		buf = ByteBuffer.allocate(10);

		// Create a direct (memory-mapped) ByteBuffer with a 10 byte capacity.
		buf = ByteBuffer.allocateDirect(10);

		
		// Create an empty ByteBuffer with a 10 byte capacity
		ByteBuffer bbuf = ByteBuffer.allocate(10);

		// Get the ByteBuffer's capacity
		int capacity = bbuf.capacity(); // 10
		System.out.println(capacity);

		// Use the absolute get().
		// This method does not affect the position.
		byte b = bbuf.get(5); // position=0

		// Set the position
		bbuf.position(5);

		// Use the relative get()
		b = bbuf.get();

		// Get the new position
		int pos = bbuf.position(); // 6

		// Get remaining byte count
		int rem = bbuf.remaining(); // 4

		// Set the limit
		bbuf.limit(7); // remaining=1

		// This convenience method sets the position to 0
		bbuf.rewind(); // remaining=7
		
		//Converting Between a ByteBuffer an a Byte Array 

		// Create a ByteBuffer from a byte array
		byte[] bytes1 = new byte[10];
		ByteBuffer buf1 = ByteBuffer.wrap(bytes);

		// Retrieve bytes between the position and limit
		// (see Putting Bytes into a ByteBuffer)
		bytes1 = new byte[buf.remaining()];
		buf1.get(bytes1, 0, bytes1.length);

		// Retrieve all bytes in the buffer
		buf1.clear();
		bytes1 = new byte[buf1.capacity()];
		buf1.get(bytes1, 0, bytes1.length);
		
		// Use the absolute put().
		// This method does not affect the position.
		bbuf.put((byte)0xFF); // position=0

		// Set the position
		bbuf.position(5);

		// Use the relative put()
		bbuf.put((byte)0xFF);

		// Get the new position
		int pos1 = bbuf.position(); // 6
		
		
		//Setting the Byte Ordering for a ByteBuffer 
		// Get default byte ordering
		ByteOrder order = buf.order(); // ByteOrder.BIG_ENDIAN

		// Put a multibyte value
		buf.putShort(0, (short)123);
		buf.get(0); // 0
		buf.get(1); // 123

		// Set to little endian
		buf.order(ByteOrder.LITTLE_ENDIAN);

		// Put a multibyte value
		buf.putShort(0, (short)123);
		buf.get(0); // 123
		buf.get(1); // 0



	}
}

相关文章

    暂无相关文章
相关栏目:

用户点评