大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
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
}
}
这是一篇转载的博客我还没有来得及进行验证,放在这里只是为了以后自己方便查看,如有错误的地方还请以评论的方式告知,我会进行改正。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186742.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...