public abstract class CharBuffer extends Buffer implements Comparable<CharBuffer>, CharSequence, Appendable
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.| Modifier and Type | Method and Description |
|---|---|
CharBuffer |
append(char c)
Writes the given char to the current position and increases the position by 1.
|
CharBuffer |
append(CharSequence csq)
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. |
CharBuffer |
append(CharSequence csq,
int start,
int end)
Writes chars of the given
CharSequence to the current position of this buffer, and
increases the position by the number of chars written. |
char[] |
array()
Returns the char array which this buffer is based on, if there is one.
|
int |
arrayOffset()
Returns the offset of the char array which this buffer is based on, if there is one.
|
abstract CharBuffer |
asReadOnlyBuffer()
Returns a read-only buffer that shares its content with this buffer.
|
char |
charAt(int index)
Returns the character located at the specified index in the buffer.
|
abstract CharBuffer |
compact()
Compacts this char buffer.
|
int |
compareTo(CharBuffer otherBuffer)
Compare the remaining chars of this buffer to another char buffer's remaining chars.
|
abstract CharBuffer |
duplicate()
Returns a duplicated buffer that shares its content with this buffer.
|
boolean |
equals(Object other)
Checks whether this char buffer is equal to another object.
|
abstract char |
get()
Returns the char at the current position and increases the position by 1.
|
CharBuffer |
get(char[] dest)
Reads chars from the current position into the specified char array and increases the
position by the number of chars read.
|
CharBuffer |
get(char[] dest,
int off,
int len)
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.
|
abstract char |
get(int index)
Returns a char at the specified index; the position is not changed.
|
boolean |
hasArray()
Indicates whether this buffer is based on a char array and is read/write.
|
int |
hashCode()
Calculates this buffer's hash code from the remaining chars.
|
abstract boolean |
isDirect()
Indicates whether this buffer is direct.
|
int |
length()
Returns the number of remaining chars.
|
abstract ByteOrder |
order()
Returns the byte order used by this buffer when converting chars from/to bytes.
|
abstract CharBuffer |
put(char c)
Writes the given char to the current position and increases the position by 1.
|
CharBuffer |
put(char[] src)
Writes chars from the given char array to the current position and increases the position
by the number of chars written.
|
CharBuffer |
put(char[] src,
int off,
int len)
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.
|
CharBuffer |
put(CharBuffer src)
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. |
abstract CharBuffer |
put(int index,
char c)
Writes a char to the specified index of this buffer; the position is not changed.
|
CharBuffer |
put(String str)
Writes all chars of the given string to the current position of this buffer, and increases
the position by the length of string.
|
CharBuffer |
put(String str,
int start,
int end)
Writes chars of the given string to the current position of this buffer, and increases the
position by the number of chars written.
|
int |
read(CharBuffer target)
Reads characters from this buffer and puts them into
target. |
abstract CharBuffer |
slice()
Returns a sliced buffer that shares its content with this buffer.
|
abstract CharSequence |
subSequence(int start,
int end)
Returns a new char buffer representing a sub-sequence of this buffer's current remaining
content.
|
String |
toString()
Returns a string representing the current remaining chars of this buffer.
|
capacity, clear, flip, hasRemaining, isReadOnly, limit, limit, mark, position, position, remaining, reset, rewindclone, finalize, getClass, notify, notifyAll, wait, wait, waitchars, codePointspublic final char[] array()
ReadOnlyBufferException - if this buffer is based on an array, but it is read-only.UnsupportedOperationException - if this buffer is not based on an array.public final int arrayOffset()
The offset is the index of the array corresponds to the zero position of the buffer.
ReadOnlyBufferException - if this buffer is based on an array but it is read-only.UnsupportedOperationException - if this buffer is not based on an array.public abstract CharBuffer asReadOnlyBuffer()
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.
public final char charAt(int index)
charAt in interface CharSequenceindex - the index referenced from the current buffer position. It must not be less than
zero but less than the value obtained from a call to remaining().IndexOutOfBoundsException - if the index is invalid.public abstract CharBuffer compact()
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.public int compareTo(CharBuffer otherBuffer)
compareTo in interface Comparable<CharBuffer>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.public abstract CharBuffer duplicate()
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 buffer's position, limit and mark are independent.
public boolean equals(Object other)
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.
public abstract char get()
BufferUnderflowException - if the position is equal or greater than limit.public CharBuffer get(char[] dest)
Calling this method has the same effect as get(dest, 0, dest.length).
dest - the destination char array.BufferUnderflowException - if dest.length is greater than remaining().public CharBuffer get(char[] dest, int off, int len)
dest - the target char array.off - the offset of the char array, must not be negative and not greater than dest.length.len - The number of chars to read, must be no less than zero and no greater than dest.length - off.IndexOutOfBoundsException - if either off or len is invalid.BufferUnderflowException - if len is greater than remaining().public abstract char get(int index)
index - the index, must not be negative and less than limit.IndexOutOfBoundsException - if index is invalid.public final boolean hasArray()
true if this buffer is based on a byte array and provides read/write access,
false otherwise.public int hashCode()
public abstract boolean isDirect()
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.public final int length()
length in interface CharSequencepublic abstract ByteOrder order()
If this buffer is not based on a byte buffer, then this always returns the platform's native byte order.
public abstract CharBuffer put(char c)
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.public final CharBuffer put(char[] src)
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.public CharBuffer put(char[] src, int off, int len)
src - the source char array.off - the offset of char array, must not be negative and not greater than src.length.len - the number of chars to write, must be no less than zero and no greater than
src.length - off.BufferOverflowException - if remaining() is less than len.IndexOutOfBoundsException - if either off or len is invalid.ReadOnlyBufferException - if no changes may be made to the contents of this buffer.public CharBuffer put(CharBuffer src)
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.public abstract CharBuffer put(int index, char c)
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.public final CharBuffer put(String str)
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.public CharBuffer put(String str, int start, int end)
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.public abstract CharBuffer slice()
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 buffer's position, limit and mark are independent.
public abstract CharSequence subSequence(int start, int end)
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 buffer's position, limit and mark are independent.
subSequence in interface CharSequencestart - 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.public String toString()
toString in interface CharSequencetoString in class Objectpublic CharBuffer append(char c)
append in interface Appendablec - 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.public CharBuffer append(CharSequence csq)
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()).
CharSequence is null the string "null" will be written to the buffer.append in interface Appendablecsq - 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.public CharBuffer append(CharSequence csq, int start, int end)
CharSequence to the current position of this buffer, and
increases the position by the number of chars written.append in interface Appendablecsq - 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.public int read(CharBuffer target) throws IOException
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.Copyright © 2019–2020. All rights reserved.