说明
利用ByteBufUtil的indexOf(ByteBuf needle, ByteBuf haystack)函数可以在haystack中寻找needle出现的位置。如果没有找到,返回-1。
示例
在一个ByteBuf 中找到了另外一个ByteBuf
package com.thb;import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;public class Test {public static void main(String[] args) {// 创建一个ByteBufByteBuf buf = Unpooled.buffer();buf.writeByte(22);buf.writeByte(22);buf.writeByte(22);buf.writeByte(104);buf.writeByte(22);// 创建一个包裹数组的ByteBufByteBuf buf2 = Unpooled.wrappedBuffer(new byte[] {104, 22});// 在buf中查找buf2int index = ByteBufUtil.indexOf(buf2, buf);System.out.println(index);}}
运行输出:
在一个ByteBuf 中没有找到另外一个ByteBuf
package com.thb;import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;public class Test {public static void main(String[] args) {// 创建一个ByteBufByteBuf buf = Unpooled.buffer();buf.writeByte(22);buf.writeByte(22);buf.writeByte(22);buf.writeByte(104);buf.writeByte(22);// 创建一个包裹数组的ByteBufByteBuf buf2 = Unpooled.wrappedBuffer(new byte[] {104, 22, 22});// 在buf中查找buf2int index = ByteBufUtil.indexOf(buf2, buf);System.out.println(index);}}
运行输出: