ByteBuffer拷贝效率问题(80分相送)
大家好,以下是我的一段拷贝ByteBuffer的代码,功能为从msgBuffer中拷贝abc开头d结尾部分的数据到swapBuffer中,一直拷贝到没有为止,功能虽然实现了,但小弟感觉如此处理效率不是很高,当中用了很多的get,put方法比较了Bytebuffer中的没个字节,各位前辈们实际中是否有批量处理的方法,或者其他方面可以提高程序的处理效率????小弟在此谢过了。
private boolean SwapBuffer() {
int roundcount =0;
try{
while(msgBuffer.position() <msgBuffer.limit()){
byte srcByte = msgBuffer.get();
if((char)srcByte == 'a '){
srcByte = msgBuffer.get();
if((char)srcByte == 'b '){
srcByte = msgBuffer.get();
if((char)srcByte == 'c '){
ByteBuffer swapBuffer = ByteBuffer.allocate(10240);
StringBuffer buffer = new StringBuffer();
swapBuffer.put((byte) 'a ');
buffer.append( 'a ');
swapBuffer.put((byte) 'b ');
buffer.append( 'b ');
swapBuffer.put(srcByte);
buffer.append((char)srcByte);
srcByte = msgBuffer.get();
while((msgBuffer.position() <msgBuffer.limit())
&&((char)srcByte!= 'd ')){
swapBuffer.put(srcByte);
buffer.append((char)srcByte);
srcByte = msgBuffer.get();
}
if((char)srcByte== 'd '){