java.nio包中一个关于字节缓冲区的问题
最近学习java.nio包中的字节缓冲区 随便写了一个简单的代码
import java.nio.*;
public class BufferTest
{
public static void main(String args[])
{
CharBuffer buffer=CharBuffer.allocate(32);
String str="helloworld";
char echo[]=str.toCharArray();
buffer.wrap(echo);
System.out.println(buffer.toString());
}
}
程序为什么输出的是 框框?? 想把字符缓冲区中的数据一个一个输出 应该怎么做??
------解决方案--------------------buffer.wrap(echo);
wrap()为static方法,使用时应类名加上方法名CharBuffer.wrap(cheo),由于返回CharBuffer
代码应该修改为:buffer = CharBuffer.wrap(echo);
------解决方案--------------------因为buffer中没有内容,而在初始化的时候指定了buffer的长度为32,所以输出了32个空格。
CharBuffer buffer=CharBuffer.allocate(32); //去掉
String str="helloworld";
char echo[]=str.toCharArray();
buffer.wrap(echo); //wrap()静态方法-> CharBuffer buffer = CharBuffer.wrap(echo);
System.out.println(buffer.toString());
------解决方案-------------------- CharBuffer charBuffer = CharBuffer.allocate(23);
charBuffer.put("sa".toCharArray());
charBuffer.put("sa".toCharArray());
System.out.println(charBuffer.array());