Java CharBuffer.put()没有';行不通

Java CharBuffer.put()没有';行不通,java,buffer,put,Java,Buffer,Put,我尝试使用CharBuffer.put()函数将一些字符串放入CharBuffer 但是缓冲区是空的 我的代码: CharBuffer charBuf = CharBuffer.allocate(1000); for (int i = 0; i < 10; i++) { String text = "testing" + i + "\n"; charBuf.put(text); } System.out.println(charBuf); CharBuffer char

我尝试使用
CharBuffer.put()
函数将一些字符串放入
CharBuffer
但是缓冲区是空的

我的代码:

CharBuffer charBuf = CharBuffer.allocate(1000);
for (int i = 0; i < 10; i++) 
{
    String text = "testing" + i + "\n";
    charBuf.put(text);
}
System.out.println(charBuf);
CharBuffer charBuf=CharBuffer.allocate(1000);
对于(int i=0;i<10;i++)
{
String text=“测试”+i+“\n”;
charBuf.put(文本);
}
系统输出打印项次(charBuf);

我尝试在
allocate(1000)
之后使用with
clear()
revind()
,但这并没有改变结果。

在放入对象后必须将其回放,请尝试此操作

CharBuffer charBuf = CharBuffer.allocate(1000);
for (int i = 0; i < 10; i++) 
{
    String text = "testing" + i + "\n";
    charBuf.put(text);
}
charBuf.rewind();
System.out.println(charBuf);
CharBuffer charBuf=CharBuffer.allocate(1000);
对于(int i=0;i<10;i++)
{
String text=“测试”+i+“\n”;
charBuf.put(文本);
}
charBuf.rewind();
系统输出打印项次(charBuf);
在循环后向右侧添加调用。

尝试以下操作:

CharBuffer charBuf = CharBuffer.allocate(1000);
for (int i = 0; i < 10; i++) 
{
    String text = "testing" + i + "\n";
    charBuf.put(text);
}
charBuf.rewind();
System.out.println(charBuf);
CharBuffer charBuf=CharBuffer.allocate(1000);
对于(int i=0;i<10;i++)
{
String text=“测试”+i+“\n”;
charBuf.put(文本);
}
charBuf.rewind();
系统输出打印项次(charBuf);

您缺少的细节是写入操作会将当前指针移动到写入数据的末尾,因此当您打印数据时,它将从当前指针开始,而当前指针未写入任何内容。

您需要
翻转()
缓冲区,然后才能从缓冲区读取数据。在从缓冲区读取数据之前,需要调用
flip()
方法。调用
flip()
方法时,限制设置为当前位置,位置设置为0。e、 g

CharBuffer charBuf = CharBuffer.allocate(1000);
for (int i = 0; i < 10; i++) 
{
    String text = "testing" + i + "\n";
    charBuf.put(text);
}
charBuf.flip();
System.out.println(charBuf);
CharBuffer charBuf=CharBuffer.allocate(1000);
对于(int i=0;i<10;i++)
{
String text=“测试”+i+“\n”;
charBuf.put(文本);
}
charBuf.flip();
系统输出打印项次(charBuf);
上述操作只打印缓冲区中的字符,而不打印缓冲区中的未写入空间