java.lang.Object | ||
↳ | java.nio.Buffer | |
↳ | java.nio.CharBuffer |
A buffer of chars.
A char buffer can be created in either one of the following ways:
Allocate
a new char array and create a buffer
based on it;Wrap
an existing char array to create a new
buffer;Wrap
an existing char sequence to create a
new buffer;ByteBuffer.asCharBuffer
to create a char buffer based on a byte buffer.Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Creates a char buffer based on a newly allocated char array.
| |||||||||||
Writes the given char to the current position and increases the position
by 1.
| |||||||||||
Writes chars of the given
CharSequence to the current position of
this buffer, and increases the position by the number of chars written. | |||||||||||
Writes all chars of the given character sequence
csq to the
current position of this buffer, and increases the position by the length
of the csq. | |||||||||||
Returns the array that backs this buffer (optional operation).
| |||||||||||
Returns the offset into the array returned by
array of the first
element of the buffer (optional operation). | |||||||||||
Returns a read-only buffer that shares its content with this buffer.
| |||||||||||
Returns the character located at the given offset relative to the current position.
| |||||||||||
Compacts this char buffer.
| |||||||||||
Compare the remaining chars of this buffer to another char
buffer's remaining chars.
| |||||||||||
Returns a duplicated buffer that shares its content with this buffer.
| |||||||||||
Checks whether this char buffer is equal to another object.
| |||||||||||
Reads chars from the current position into the specified char array,
starting from the specified offset, and increases the position by the
number of chars read.
| |||||||||||
Returns the char at the current position and increases the position by 1.
| |||||||||||
Returns a char at the specified index; the position is not changed.
| |||||||||||
Reads chars from the current position into the specified char array and
increases the position by the number of chars read.
| |||||||||||
Returns true if
array and arrayOffset won't throw. | |||||||||||
Calculates this buffer's hash code from the remaining chars.
| |||||||||||
Indicates whether this buffer is direct.
| |||||||||||
Returns the number of remaining chars.
| |||||||||||
Returns the byte order used by this buffer when converting chars from/to
bytes.
| |||||||||||
Writes all chars of the given string to the current position of this
buffer, and increases the position by the length of string.
| |||||||||||
Writes the given char to the current position and increases the position
by 1.
| |||||||||||
Writes chars of the given string to the current position of this buffer,
and increases the position by the number of chars written.
| |||||||||||
Writes a char to the specified index of this buffer; the position is not
changed.
| |||||||||||
Writes all the remaining chars of the
src char buffer to this
buffer's current position, and increases both buffers' position by the
number of chars copied. | |||||||||||
Writes chars from the given char array to the current position and
increases the position by the number of chars written.
| |||||||||||
Writes chars from the given char array, starting from the specified offset,
to the current position and increases the position by the number of chars
written.
| |||||||||||
Reads characters from this buffer and puts them into
target . | |||||||||||
Returns a sliced buffer that shares its content with this buffer.
| |||||||||||
Returns a new char buffer representing a sub-sequence of this buffer's
current remaining content.
| |||||||||||
Returns a string representing the current remaining chars of this buffer.
| |||||||||||
Creates a new char buffer by wrapping the given char sequence.
| |||||||||||
Creates a new char buffer by wrapping the given char sequence.
| |||||||||||
Creates a new char buffer by wrapping the given char array.
| |||||||||||
Creates a new char buffer by wrapping the given char array.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.nio.Buffer
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
java.lang.Appendable
| |||||||||||
From interface
java.lang.CharSequence
| |||||||||||
From interface
java.lang.Comparable
| |||||||||||
From interface
java.lang.Readable
|
Creates a char buffer based on a newly allocated char array.
capacity | the capacity of the new buffer. |
---|
IllegalArgumentException | if capacity is less than zero.
|
---|
Writes the given char to the current position and increases the position by 1.
c | the char to write. |
---|
BufferOverflowException | if position is equal or greater than limit. |
---|---|
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
Writes chars of the given CharSequence
to the current position of
this buffer, and increases the position by the number of chars written.
csq | the CharSequence to write. |
---|---|
start | the first char to write, must not be negative and not greater
than csq.length() . |
end | the last char to write (excluding), must be less than
start and not greater than csq.length() . |
BufferOverflowException | if remaining() is less than end - start . |
---|---|
IndexOutOfBoundsException | if either start or end is invalid. |
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
Writes all chars of the given character sequence csq
to the
current position of this buffer, and increases the position by the length
of the csq.
Calling this method has the same effect as append(csq.toString())
.
If the CharSequence
is null
the string "null" will be
written to the buffer.
csq | the CharSequence to write. |
---|
BufferOverflowException | if remaining() is less than the length of csq. |
---|---|
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
Returns the array that backs this buffer (optional operation). The returned value is the actual array, not a copy, so modifications to the array write through to the buffer.
Subclasses should override this method with a covariant return type to provide the exact type of the array.
Use hasArray
to ensure this method won't throw.
(A separate call to isReadOnly
is not necessary.)
Returns the offset into the array returned by array
of the first
element of the buffer (optional operation). The backing array (if there is one)
is not necessarily the same size as the buffer, and position 0 in the buffer is
not necessarily the 0th element in the array. Use
buffer.array()[offset + buffer.arrayOffset()
to access element offset
in buffer
.
Use hasArray
to ensure this method won't throw.
(A separate call to isReadOnly
is not necessary.)
Returns a read-only buffer that shares its content with this buffer.
The returned buffer is guaranteed to be a new instance, even if this buffer is read-only itself. The new buffer's position, limit, capacity and mark are the same as this buffer's.
The new buffer shares its content with this buffer, which means this buffer's change of content will be visible to the new buffer. The two buffer's position, limit and mark are independent.
Returns the character located at the given offset relative to the current position.
IndexOutOfBoundsException | if index < 0 or index >= remaining() .
|
---|
Compacts this char buffer.
The remaining chars will be moved to the head of the buffer,
starting from position zero. Then the position is set to
remaining()
; the limit is set to capacity; the mark is cleared.
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
---|
Compare the remaining chars of this buffer to another char buffer's remaining chars.
otherBuffer | another char buffer. |
---|
otherBuffer
; 0 if
this equals to otherBuffer
; a positive value if this is
greater than otherBuffer
.ClassCastException | if otherBuffer is not a char buffer.
|
---|
Returns a duplicated buffer that shares its content with this buffer.
The duplicated buffer's initial position, limit, capacity and mark are the same as this buffer's. The duplicated buffer's read-only property and byte order are the same as this buffer's, too.
The new buffer shares its content with this buffer, which means either buffer's change of content will be visible to the other. The two buffers' position, limit and mark are independent.
Checks whether this char buffer is equal to another object.
If other
is not a char buffer then false
is returned. Two
char buffers are equal if and only if their remaining chars are exactly
the same. Position, limit, capacity and mark are not considered.
other | the object to compare with this char buffer. |
---|
true
if this char buffer is equal to other
,
false
otherwise.
Reads chars from the current position into the specified char array, starting from the specified offset, and increases the position by the number of chars read.
dst | the target char array. |
---|---|
dstOffset | the offset of the char array, must not be negative and not
greater than dst.length . |
charCount | The number of chars to read, must be no less than zero and no
greater than dst.length - dstOffset . |
IndexOutOfBoundsException | if either dstOffset or charCount is invalid. |
---|---|
BufferUnderflowException | if charCount is greater than remaining() .
|
Returns the char at the current position and increases the position by 1.
BufferUnderflowException | if the position is equal or greater than limit. |
---|
Returns a char at the specified index; the position is not changed.
index | the index, must not be negative and less than limit. |
---|
IndexOutOfBoundsException | if index is invalid. |
---|
Reads chars from the current position into the specified char array and increases the position by the number of chars read.
Calling this method has the same effect as
get(dst, 0, dst.length)
.
dst | the destination char array. |
---|
BufferUnderflowException | if dst.length is greater than remaining() .
|
---|
Returns true if array
and arrayOffset
won't throw. This method does not
return true for buffers not backed by arrays because the other methods would throw
UnsupportedOperationException
, nor does it return true for buffers backed by
read-only arrays, because the other methods would throw ReadOnlyBufferException
.
Calculates this buffer's hash code from the remaining chars. The position, limit, capacity and mark don't affect the hash code.
Indicates whether this buffer is direct. A direct buffer will try its best to take advantage of native memory APIs and it may not stay in the Java heap, so it is not affected by garbage collection.
A char buffer is direct if it is based on a byte buffer and the byte buffer is direct.
true
if this buffer is direct, false
otherwise.
Returns the number of remaining chars.
Returns the byte order used by this buffer when converting chars from/to bytes.
If this buffer is not based on a byte buffer, then this always returns the platform's native byte order.
Writes all chars of the given string to the current position of this buffer, and increases the position by the length of string.
Calling this method has the same effect as
put(str, 0, str.length())
.
str | the string to write. |
---|
BufferOverflowException | if remaining() is less than the length of string. |
---|---|
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
Writes the given char to the current position and increases the position by 1.
c | the char to write. |
---|
BufferOverflowException | if position is equal or greater than limit. |
---|---|
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
Writes chars of the given string to the current position of this buffer, and increases the position by the number of chars written.
str | the string to write. |
---|---|
start | the first char to write, must not be negative and not greater
than str.length() . |
end | the last char to write (excluding), must be less than
start and not greater than str.length() . |
BufferOverflowException | if remaining() is less than end - start . |
---|---|
IndexOutOfBoundsException | if either start or end is invalid. |
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
Writes a char to the specified index of this buffer; the position is not changed.
index | the index, must be no less than zero and less than the limit. |
---|---|
c | the char to write. |
IndexOutOfBoundsException | if index is invalid. |
---|---|
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
Writes all the remaining chars of the src
char buffer to this
buffer's current position, and increases both buffers' position by the
number of chars copied.
src | the source char buffer. |
---|
BufferOverflowException | if src.remaining() is greater than this buffer's
remaining() . |
---|---|
IllegalArgumentException | if src is this buffer. |
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
Writes chars from the given char array to the current position and increases the position by the number of chars written.
Calling this method has the same effect as
put(src, 0, src.length)
.
src | the source char array. |
---|
BufferOverflowException | if remaining() is less than src.length . |
---|---|
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
Writes chars from the given char array, starting from the specified offset, to the current position and increases the position by the number of chars written.
src | the source char array. |
---|---|
srcOffset | the offset of char array, must not be negative and not greater
than src.length . |
charCount | the number of chars to write, must be no less than zero and no
greater than src.length - srcOffset . |
BufferOverflowException | if remaining() is less than charCount . |
---|---|
IndexOutOfBoundsException | if either srcOffset or charCount is invalid. |
ReadOnlyBufferException | if no changes may be made to the contents of this buffer. |
Reads characters from this buffer and puts them into target
. The
number of chars that are copied is either the number of remaining chars
in this buffer or the number of remaining chars in target
,
whichever is smaller.
target | the target char buffer. |
---|
IllegalArgumentException | if target is this buffer. |
---|---|
IOException | if an I/O error occurs. |
ReadOnlyBufferException | if no changes may be made to the contents of target . |
Returns a sliced buffer that shares its content with this buffer.
The sliced buffer's capacity will be this buffer's remaining()
,
and its zero position will correspond to this buffer's current position.
The new buffer's position will be 0, limit will be its capacity, and its
mark is cleared. The new buffer's read-only property and byte order are
same as this buffer.
The new buffer shares its content with this buffer, which means either buffer's change of content will be visible to the other. The two buffers' position, limit and mark are independent.
Returns a new char buffer representing a sub-sequence of this buffer's current remaining content.
The new buffer's position will be position() + start
, limit will
be position() + end
, capacity will be the same as this buffer.
The new buffer's read-only property and byte order are the same as this
buffer.
The new buffer shares its content with this buffer, which means either buffer's change of content will be visible to the other. The two buffers' position, limit and mark are independent.
start | the start index of the sub-sequence, referenced from the
current buffer position. Must not be less than zero and not
greater than the value obtained from a call to
remaining() . |
---|---|
end | the end index of the sub-sequence, referenced from the current
buffer position. Must not be less than start and not
be greater than the value obtained from a call to
remaining() . |
IndexOutOfBoundsException | if either start or end is invalid.
|
---|
Returns a string representing the current remaining chars of this buffer.
Creates a new char buffer by wrapping the given char sequence.
The new buffer's position will be start
, limit will be
end
, capacity will be the length of the char sequence. The new
buffer is read-only.
cs | the char sequence which the new buffer will be based on. |
---|---|
start | the start index, must not be negative and not greater than
cs.length() . |
end | the end index, must be no less than start and no
greater than cs.length() . |
IndexOutOfBoundsException | if either start or end is invalid.
|
---|
Creates a new char buffer by wrapping the given char sequence.
Calling this method has the same effect as
wrap(chseq, 0, chseq.length())
.
chseq | the char sequence which the new buffer will be based on. |
---|
Creates a new char buffer by wrapping the given char array.
The new buffer's position will be start
, limit will be
start + charCount
, capacity will be the length of the array.
array | the char array which the new buffer will be based on. |
---|---|
start | the start index, must not be negative and not greater than
array.length . |
charCount | the length, must not be negative and not greater than
array.length - start . |
IndexOutOfBoundsException | if either start or charCount is invalid.
|
---|
Creates a new char buffer by wrapping the given char array.
Calling this method has the same effect as
wrap(array, 0, array.length)
.
array | the char array which the new buffer will be based on. |
---|