最近学习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());
      
     
   }
    
    
}
程序为什么输出的是 框框?? 想把字符缓冲区中的数据一个一个输出 应该怎么做?? 

解决方案 »

  1.   

    buffer.wrap(echo);
    wrap()为static方法,使用时应类名加上方法名CharBuffer.wrap(cheo),由于返回CharBuffer
    代码应该修改为:buffer = CharBuffer.wrap(echo);
      

  2.   

    因为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());
      

  3.   

      CharBuffer charBuffer = CharBuffer.allocate(23);
      charBuffer.put("sa".toCharArray());
      charBuffer.put("sa".toCharArray());
      System.out.println(charBuffer.array());