在以下情况下,是否有任何理由需要CharBuffer而不是char[]:

CharBuffer buf = CharBuffer.allocate(DEFAULT_BUFFER_SIZE);
while( in.read(buf) >= 0 ) {
  out.append( buf.flip() );
  buf.clear();
}


char[] buf = new char[DEFAULT_BUFFER_SIZE];
int n;
while( (n = in.read(buf)) >= 0 ) {
  out.write( buf, 0, n );
}

(其中inReader中的outWriter)?

最佳答案

不,在这种情况下,实际上没有理由偏爱CharBuffer

通常,CharBuffer(和ByteBuffer)可以真正简化API并鼓励正确的处理。如果您正在设计一个公共(public)API,那么绝对值得考虑使用面向缓冲区的API。

07-24 21:41