java writeint_Java Bytes.writeInt方法代码示例

import net.openhft.chronicle.bytes.Bytes; //导入方法依赖的package包/类

@Override

public void write(Bytes out, @NotNull CharSequence cs) {

// Write the actual cs length for accurate StringBuilder.ensureCapacity() while reading

out.writeStopBit(cs.length());

long encodedSizePos = out.writePosition();

out.writeSkip(4);

charsetEncoder.reset();

inputBuffer.clear();

outputBuffer.clear();

int csPos = 0;

boolean endOfInput = false;

// this loop inspired by the CharsetEncoder.encode(CharBuffer) implementation

while (true) {

if (!endOfInput) {

int nextCsPos = Math.min(csPos + inputBuffer.remaining(), cs.length());

append(inputBuffer, cs, csPos, nextCsPos);

inputBuffer.flip();

endOfInput = nextCsPos == cs.length();

csPos = nextCsPos;

}

CoderResult cr = inputBuffer.hasRemaining() ?

charsetEncoder.encode(inputBuffer, outputBuffer, endOfInput) :

CoderResult.UNDERFLOW;

if (cr.isUnderflow() && endOfInput)

cr = charsetEncoder.flush(outputBuffer);

if (cr.isUnderflow()) {

if (endOfInput) {

break;

} else {

inputBuffer.compact();

continue;

}

}

if (cr.isOverflow()) {

outputBuffer.flip();

writeOutputBuffer(out);

outputBuffer.clear();

continue;

}

try {

cr.throwException();

} catch (CharacterCodingException e) {

throw new IORuntimeException(e);

}

}

outputBuffer.flip();

writeOutputBuffer(out);

out.writeInt(encodedSizePos, (int) (out.writePosition() - encodedSizePos - 4));

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值