本文整理了Java中java.nio.ByteBuffer.limit()
方法的一些代码示例,展示了ByteBuffer.limit()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ByteBuffer.limit()
方法的具体详情如下:
包路径:java.nio.ByteBuffer
类名称:ByteBuffer
方法名:limit
暂无
代码示例来源:origin: apache/incubator-dubbo
@Override
public void setBytes(int index, byte[] src, int srcIndex, int length) {
ByteBuffer data = buffer.duplicate();
data.limit(index + length).position(index);
data.put(src, srcIndex, length);
}
代码示例来源:origin: apache/incubator-dubbo
@Override
public void setBytes(int index, ByteBuffer src) {
ByteBuffer data = buffer.duplicate();
data.limit(index + src.remaining()).position(index);
data.put(src);
}
代码示例来源:origin: apache/incubator-dubbo
@Override
public void getBytes(int index, byte[] dst, int dstIndex, int length) {
ByteBuffer data = buffer.duplicate();
try {
data.limit(index + length).position(index);
} catch (IllegalArgumentException e) {
throw new IndexOutOfBoundsException();
}
data.get(dst, dstIndex, length);
}
代码示例来源:origin: apache/kafka
/**
* transfers appReadBuffer contents (decrypted data) into dst bytebuffer
* @param dst ByteBuffer
*/
private int readFromAppBuffer(ByteBuffer dst) {
appReadBuffer.flip();
int remaining = Math.min(appReadBuffer.remaining(), dst.remaining());
if (remaining > 0) {
int limit = appReadBuffer.limit();
appReadBuffer.limit(appReadBuffer.position() + remaining);
dst.put(appReadBuffer);
appReadBuffer.limit(limit);
}
appReadBuffer.compact();
return remaining;
}
代码示例来源:origin: google/guava
@Override
public Hasher putBytes(ByteBuffer b) {
if (b.hasArray()) {
putBytes(b.array(), b.arrayOffset() + b.position(), b.remaining());
b.position(b.limit());
} else {
for (int remaining = b.remaining(); remaining > 0; remaining--) {
putByte(b.get());
}
}
return this;
}
代码示例来源:origin: Tencent/tinker
private void ensureBufferSize(int bytes) {
if (this.data.position() + bytes > this.data.limit()) {
if (this.isResizeAllowed) {
byte[] array = this.data.array();
byte[] newArray = new byte[array.length + bytes + (array.length >> 1)];
System.arraycopy(array, 0, newArray, 0, this.data.position());
int lastPos = this.data.position();
this.data = ByteBuffer.wrap(newArray);
this.data.order(ByteOrder.LITTLE_ENDIAN);
this.data.position(lastPos);
this.data.limit(this.data.capacity());
}
}
}
代码示例来源:origin: apache/kafka
private void expandBuffer(int remainingRequired) {
int expandSize = Math.max((int) (buffer.limit() * REALLOCATION_FACTOR), buffer.position() + remainingRequired);
ByteBuffer temp = ByteBuffer.allocate(expandSize);
int limit = limit();
buffer.flip();
temp.put(buffer);
buffer.limit(limit);
// reset the old buffer's position so that the partial data in the new buffer cannot be mistakenly consumed
// we should ideally only do this for the original buffer, but the additional complexity doesn't seem worth it
buffer.position(initialPosition);
buffer = temp;
}
代码示例来源:origin: redisson/redisson
/**
* Get the last {@code byte} from this {@literal Buffer}.
*
* @return The last {@code byte}.
*/
public byte last() {
int pos = buffer.position();
int limit = buffer.limit();
buffer.position(limit - 1); // go to right before last position
byte b = buffer.get(); // get the last byte
buffer.position(pos); // go back to original pos
return b;
}
代码示例来源:origin: Tencent/tinker
public DexDataBuffer() {
this.data = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
this.data.order(ByteOrder.LITTLE_ENDIAN);
this.dataBound = this.data.position();
this.data.limit(this.data.capacity());
this.isResizeAllowed = true;
}
代码示例来源:origin: apache/incubator-druid
@Override
public GenericRecord parse(ByteBuffer bytes)
{
try {
bytes.get(); // ignore first \0 byte
int id = bytes.getInt(); // extract schema registry id
int length = bytes.limit() - 1 - 4;
int offset = bytes.position() + bytes.arrayOffset();
Schema schema = registry.getByID(id);
DatumReader<GenericRecord> reader = new GenericDatumReader<>(schema);
return reader.read(null, DecoderFactory.get().binaryDecoder(bytes.array(), offset, length, null));
}
catch (Exception e) {
throw new ParseException(e, "Fail to decode avro message!");
}
}
代码示例来源:origin: libgdx/libgdx
@Override
public CharBuffer slice () {
byteBuffer.limit(limit << 1);
byteBuffer.position(position << 1);
CharBuffer result = new CharToByteBufferAdapter(byteBuffer.slice());
byteBuffer.clear();
return result;
}
代码示例来源:origin: bumptech/glide
@SuppressWarnings("ByteBufferBackingArray")
@NonNull
public static byte[] toBytes(@NonNull ByteBuffer byteBuffer) {
final byte[] result;
SafeArray safeArray = getSafeArray(byteBuffer);
if (safeArray != null && safeArray.offset == 0 && safeArray.limit == safeArray.data.length) {
result = byteBuffer.array();
} else {
ByteBuffer toCopy = byteBuffer.asReadOnlyBuffer();
result = new byte[toCopy.limit()];
toCopy.position(0);
toCopy.get(result);
}
return result;
}
代码示例来源:origin: bumptech/glide
@Nullable
private static SafeArray getSafeArray(@NonNull ByteBuffer byteBuffer) {
if (!byteBuffer.isReadOnly() && byteBuffer.hasArray()) {
return new SafeArray(byteBuffer.array(), byteBuffer.arrayOffset(), byteBuffer.limit());
}
return null;
}
代码示例来源:origin: apache/incubator-druid
private static <T> GenericIndexed<T> createGenericIndexedVersionOne(ByteBuffer byteBuffer, ObjectStrategy<T> strategy)
{
boolean allowReverseLookup = byteBuffer.get() == REVERSE_LOOKUP_ALLOWED;
int size = byteBuffer.getInt();
ByteBuffer bufferToUse = byteBuffer.asReadOnlyBuffer();
bufferToUse.limit(bufferToUse.position() + size);
byteBuffer.position(bufferToUse.limit());
return new GenericIndexed<>(
bufferToUse,
strategy,
allowReverseLookup
);
}
代码示例来源:origin: neo4j/neo4j
protected static void generateRecordForId( long id, ByteBuffer buf )
{
buf.position( 0 );
int x = (int) (id + 1);
buf.putInt( x );
while ( buf.position() < buf.limit() )
{
x++;
buf.put( (byte) (x & 0xFF) );
}
buf.position( 0 );
}
代码示例来源:origin: apache/zookeeper
public void writeString(String s, String tag) throws IOException {
if (s == null) {
writeInt(-1, "len");
return;
}
ByteBuffer bb = stringToByteBuffer(s);
writeInt(bb.remaining(), "len");
out.write(bb.array(), bb.position(), bb.limit());
}
代码示例来源:origin: google/guava
@Override
public final HashCode hash() {
munch();
buffer.flip();
if (buffer.remaining() > 0) {
processRemaining(buffer);
buffer.position(buffer.limit());
}
return makeHash();
}
代码示例来源:origin: apache/kafka
@Override
public Object read(ByteBuffer buffer) {
int size = buffer.getInt();
if (size < 0)
return null;
if (size > buffer.remaining())
throw new SchemaException("Error reading bytes of size " + size + ", only " + buffer.remaining() + " bytes available");
ByteBuffer val = buffer.slice();
val.limit(size);
buffer.position(buffer.position() + size);
return val;
}
代码示例来源:origin: google/ExoPlayer
private @Nullable float[] parseMetadata(ByteBuffer data) {
if (data.remaining() != 16) {
return null;
}
scratch.reset(data.array(), data.limit());
scratch.setPosition(data.arrayOffset() + 4); // skip reserved bytes too.
float[] result = new float[3];
for (int i = 0; i < 3; i++) {
result[i] = Float.intBitsToFloat(scratch.readLittleEndianInt());
}
return result;
}
代码示例来源:origin: google/ExoPlayer
private static void assertDiscardToSpsMatchesExpected(String input, String expectedOutput) {
byte[] bitstream = Util.getBytesFromHexString(input);
byte[] expectedOutputBitstream = Util.getBytesFromHexString(expectedOutput);
ByteBuffer buffer = ByteBuffer.wrap(bitstream);
buffer.position(buffer.limit());
NalUnitUtil.discardToSps(buffer);
assertThat(Arrays.copyOf(buffer.array(), buffer.position())).isEqualTo(expectedOutputBitstream);
}
内容来源于网络,如有侵权,请联系作者删除!