主要用于存取数据
package netty;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import java.nio.charset.Charset;
public class Buf02
{
public static void main(String[] args) {
ByteBuf buf = Unpooled.copiedBuffer("hello北京", Charset.forName("utf-8"));//接收的类型是String是 CharSequence的实现类 因为要准备数据的传输,所以要编码。
if(buf.hasArray()){
byte[] array = buf.array();
System.out.println(new String(array, Charset.forName("utf-8")));
System.out.println("buf = " + buf);
System.out.println("buf.arrayOffset() = " + buf.arrayOffset());
System.out.println("buf.readerIndex() = " + buf.readerIndex());
System.out.println("buf.writerIndex() = " + buf.writerIndex());
System.out.println("buf.capacity() = " + buf.capacity());
buf.readByte();//这个操作,会导致下边的减少
System.out.println("buf.readableBytes() = " + buf.readableBytes());
for (int i = 0; i < buf.readableBytes(); i++) {
System.out.println("buf.getByte(i) = " + (char)buf.getByte(i));//这个方法是自己去,不会改变索引
//默认输出的是整形,所强转下
}
System.out.println("buf.getCharSequence(0,6,Charset.forName(\"utf-8\")) = " + buf.getCharSequence(0, 6, Charset.forName("utf-8")));
}
}
}