Класс CharBuffer

Все реализованные интерфейсы:
Appendable, CharSequence, Comparable<CharBuffer>, Readable
public abstract class CharBuffer
extends Buffer
implements Comparable<CharBuffer>, Appendable, CharSequence, Readable

Буфер символов.

Этот класс определяет четыре категории операций над буферами символов:

  • Абсолютные и относительные методы get и put для чтения и записи отдельных символов;

  • Относительные методы bulk get для передачи последовательных наборов символов из этого буфера в массив; и

  • Относительные методы bulk put для передачи последовательных наборов символов из массива символов, строки или другого буфера символов в этот буфер; и

  • Метод для compacting буфера символов.

Буферы символов могут быть созданы либо с помощью allocation, который выделяет место для содержимого буфера, либо с помощью wrapping существующего массива символов или строки в буфер, или путем создания представления существующего буфера байтов.

Как и буфер байтов, буфер символов может быть либо прямым, либо непрямым. Буфер символов, созданный с помощью методов wrap этого класса, будет непрямым. Буфер символов, созданный как представление буфера байтов, будет прямым только в том случае, если сам буфер байтов является прямым. Прямой ли буфер символов можно определить, вызвав метод isDirect.

Этот класс реализует интерфейс CharSequence, поэтому буферы символов могут быть использованы там, где принимаются последовательности символов, например, в пакете регулярных выражений java.util.regex.

Методы в этом классе, которые не возвращают никакого значения, по умолчанию возвращают буфер, над которым они вызываются. Это позволяет цеплять вызовы методов. Последовательность утверждений

cb.put("text/");
cb.put(subtype);
cb.put("; charset=");
cb.put(enc);
может, например, быть заменена одним оператором
cb.put("text/").put(subtype).put("; charset=").put(enc);
C момента:
1.4

Методы

Модификатор и тип Метод Описание
static CharBuffer allocate​(int capacity)

Выделяет новый буфер символов.

CharBuffer append​(char c)

Добавляет указанный символ в этот буфер (дополнительная операция).

CharBuffer append​(CharSequence csq)

Добавляет указанную последовательность символов в этот буфер (дополнительная операция).

CharBuffer append​(CharSequence csq, int start, int end)

Добавляет подпоследовательность указанной последовательности символов в этот буфер (дополнительная операция).

char[] array()

Возвращает массив символов, который поддерживает этот буфер (дополнительная операция).

int arrayOffset()

Возвращает смещение в поддерживающем массиве этого буфера первого элемента буфера (дополнительная операция).

abstract CharBuffer asReadOnlyBuffer()

Создаёт новый, только для чтения, буфер символов, который совместно использует содержимое этого буфера.

char charAt​(int index)

Считывает символ по заданному индексу, относительно текущей позиции.

abstract CharBuffer compact()

Уплотняет этот буфер (дополнительная операция).

int compareTo​(CharBuffer that)

Сравнивает этот буфер с другим.

abstract CharBuffer duplicate()

Создаёт новый буфер символов, который совместно использует содержимое этого буфера.

boolean equals​(Object ob)

Определяет, равен ли этот буфер другому объекту.

abstract char get()

Относительный метод get.

CharBuffer get​(char[] dst)

Относительный метод get для блоков данных.

CharBuffer get​(char[] dst, int offset, int length)

Относительный метод get для блоков данных.

abstract char get​(int index)

Абсолютный метод get.

boolean hasArray()

Определяет, поддерживает ли этот буфер доступный массив символов.

int hashCode()

Возвращает текущий хэш-код этого буфера.

abstract boolean isDirect()

Определяет, является ли этот буфер символов прямым.

int length()

Возвращает длину этого буфера символов.

int mismatch​(CharBuffer that)

Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером.

abstract ByteOrder order()

Получает порядок байтов этого буфера.

abstract CharBuffer put​(char c)

Относительный метод put (дополнительная операция).

CharBuffer put​(char[] src)

Относительный метод put для блоков данных (дополнительная операция).

CharBuffer put​(char[] src, int offset, int length)

Относительный метод put для блоков данных (дополнительная операция).

abstract CharBuffer put​(int index, char c)

Абсолютный метод put (дополнительная операция).

CharBuffer put​(String src)

Относительный метод put для блоков данных (дополнительная операция).

CharBuffer put​(String src, int start, int end)

Относительный метод put для блоков данных (дополнительная операция).

CharBuffer put​(CharBuffer src)

Относительный метод put для блоков данных (дополнительная операция).

int read​(CharBuffer target)

Попытка считать символы в указанный буфер символов.

abstract CharBuffer slice()

Создаёт новый буфер символов, содержимое которого является совместно используемой подпоследовательностью содержимого этого буфера.

abstract CharBuffer subSequence​(int start, int end)

Создаёт новый буфер символов, представляющий указанную подпоследовательность этого буфера, относительно текущей позиции.

String toString()

Возвращает строку, содержащую символы в этом буфере.

static CharBuffer wrap​(char[] array)

Оборачивает массив символов в буфер.

static CharBuffer wrap​(char[] array, int offset, int length)

Оборачивает массив символов в буфер.

static CharBuffer wrap​(CharSequence csq)

Оборачивает последовательность символов в буфер.

static CharBuffer wrap​(CharSequence csq, int start, int end)

Оборачивает последовательность символов в буфер.

Методы, объявленные в классе java.nio.Buffer

capacity, clear, flip, hasRemaining, isReadOnly, limit, limit, mark, position, position, remaining, reset, rewind

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе java.lang.CharSequence

chars, codePoints

Методы

allocate

public static CharBuffer allocate(int capacity)

Выделяет новый буфер char.

Позиция нового буфера будет равна нулю, его предел — емкости, метка — неопределена, каждый элемент будет инициализирован нулём, а порядок байтов — native order базового оборудования. Буфер будет иметь backing array, а его array offset будет равен нулю.

Параметры:
capacity — емкость нового буфера в символах
Возвращает:
Новый буфер char
Исключения:
IllegalArgumentException — если capacity — отрицательное целое число

wrap

public static CharBuffer wrap(char[] array,
                              int offset,
                              int length)

Оборачивает массив char в буфер.

Новый буфер будет опираться на заданный массив char; то есть, изменения в буфере приведут к изменению массива и наоборот. Емкость нового буфера будет array.length, его позиция — offset, предел — offset + length, метка — неопределена, а порядок байтов — native order базового оборудования. Его backing array будет заданным массивом, а array offset — нулём.

Параметры:
array — массив, который будет основой нового буфера
offset — смещение подмассива для использования; должно быть неотрицательным и не больше array.length. Позиция нового буфера будет установлена в это значение.
length — длина подмассива для использования; должна быть неотрицательной и не больше array.length - offset. Предел нового буфера будет установлен в offset + length.
Возвращает:
Новый буфер char
Исключения:
IndexOutOfBoundsException — если условия на offset и length параметры не выполнены

wrap

public static CharBuffer wrap(char[] array)

Оборачивает массив char в буфер.

Новый буфер будет опираться на заданный массив char; то есть, изменения в буфере приведут к изменению массива и наоборот. Емкость и предел нового буфера будут array.length, его позиция — нулём, метка — неопределена, а порядок байтов — native order базового оборудования. Его backing array будет заданным массивом, а array offset — нулём.

Параметры:
array — массив, который будет основой этого буфера
Возвращает:
Новый буфер char

read

public int read(CharBuffer target)
         throws IOException

Попытка чтения символов в указанный буфер символов. Буфер используется как хранилище символов как есть: единственные изменения — результаты операции вставки. Никакое переворачивание или перемотка буфера не выполняются.

Определено в:
read в интерфейсе Readable
Параметры:
target — буфер для чтения символов
Возвращает:
Количество добавленных в буфер символов или -1, если этот источник символов достиг своего конца
Исключения:
IOException — если произошла ошибка ввода-вывода
NullPointerException — если целевой объект равен null
ReadOnlyBufferException — если целевой объект — буфер только для чтения
С:
1.5

wrap

public static CharBuffer wrap(CharSequence csq,
                              int start,
                              int end)

Оборачивает последовательность символов в буфер.

Содержимое нового буфера только для чтения будет содержанием заданной последовательности символов. Емкость буфера будет csq.length(), его позиция — start, предел — end, а метка — неопределена.

Параметры:
csq — последовательность символов, из которой должен быть создан новый буфер символов
start — индекс первого символа для использования; должен быть неотрицательным и не больше csq.length(). Позиция нового буфера будет установлена в это значение.
end — индекс символа, следующего за последним используемым символом; должен быть не меньше start и не больше csq.length(). Предел нового буфера будет установлен в это значение.
Возвращает:
Новый буфер символов
Исключения:
IndexOutOfBoundsException — если условия на start и end параметры не выполнены

wrap

public static CharBuffer wrap(CharSequence csq)

Оборачивает последовательность символов в буфер.

Содержимое нового буфера только для чтения будет содержанием заданной последовательности символов. Емкость и предел нового буфера будут csq.length(), его позиция — нулём, а метка — неопределена.

Параметры:
csq — последовательность символов, из которой должен быть создан новый буфер символов
Возвращает:
Новый буфер символов

slice

public abstract CharBuffer slice()

Создаёт новый буфер char, содержимое которого является общим подпоследовательностью содержимого этого буфера.

Содержимое нового буфера начнётся с текущей позиции этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и метки двух буферов будут независимыми.

Позиция нового буфера будет нулевой, его емкость и предел — количество оставшихся символов в этом буфере, метка — неопределена, а порядок байтов — такой же, как у этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и он будет только для чтения, если и только если этот буфер является только для чтения.

Определено в:
slice в классе Buffer
Возвращает:
Новый буфер char

duplicate

public abstract CharBuffer duplicate()

Создаёт новый буфер char, который разделяет содержимое этого буфера.

Содержимое нового буфера будет таким же, как у этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и метки двух буферов будут независимыми.

Значения емкости, предела, позиции, метки и порядка байтов нового буфера будут идентичны значениям этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и он будет только для чтения, если и только если этот буфер является только для чтения.

Определено в:
duplicate в классе Buffer
Возвращает:
Новый буфер char

asReadOnlyBuffer

public abstract CharBuffer asReadOnlyBuffer()

Создаёт новый буфер char только для чтения, который разделяет содержимое этого буфера.

Содержимое нового буфера будет таким же, как у этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере; однако сам новый буфер будет только для чтения и не позволит изменять общее содержимое. Значения позиции, предела и метки двух буферов будут независимыми.

Значения емкости, предела, позиции, метки и порядка байтов нового буфера будут идентичны значениям этого буфера.

Если этот буфер сам по себе только для чтения, то этот метод ведет себя точно так же, как метод duplicate.

Возвращает:
Новый буфер char только для чтения

get

public abstract char get()

Относительный метод get. Читает символ char в текущей позиции буфера и затем увеличивает позицию.

Возвращает:
Символ char в текущей позиции буфера
Исключения:
BufferUnderflowException — если текущая позиция буфера не меньше его предела

put

public abstract CharBuffer put(char c)

Относительный метод put (дополнительная операция).

Записывает заданный символ char в этот буфер в текущей позиции и затем увеличивает позицию.

Параметры:
c — записываемый символ char
Возвращает:
Этот буфер
Исключения:
BufferOverflowException — если текущая позиция буфера не меньше его предела
ReadOnlyBufferException — если этот буфер только для чтения

get

public abstract char get(int index)

Абсолютный метод get. Читает символ char по заданному индексу.

Параметры:
index — индекс, из которого будет считан символ char
Возвращает:
Символ char по заданному индексу
Исключения:
IndexOutOfBoundsException — если index отрицательный или не меньше предела буфера

put

public abstract CharBuffer put(int index,
                               char c)

Абсолютный метод put (дополнительная операция).

Записывает заданный символ char в этот буфер по заданному индексу.

Параметры:
index — индекс, в который будет записан символ char
c — значение символа char для записи
Возвращает:
Этот буфер
Исключения:
IndexOutOfBoundsException — если index отрицательный или не меньше предела буфера
ReadOnlyBufferException — если этот буфер только для чтения

get

public CharBuffer get(char[] dst,
                      int offset,
                      int length)

Относительный метод массового get.

Этот метод передает символы char из этого буфера в заданный целевой массив. Если оставшихся символов char в буфере меньше, чем требуется для удовлетворения запроса, то есть, если length > remaining(), то символы не передаются и выбрасывается BufferUnderflowException.

В противном случае этот метод копирует length символов char из этого буфера в заданный массив, начиная с текущей позиции этого буфера и с заданного смещения в массиве. Позиция этого буфера затем увеличивается на length.

Другими словами, вызов этого метода в форме src.get(dst, off, len) имеет точно такой же эффект, как цикл

for (int i = off; i < off + len; i++)
         dst[i] = src.get();
за исключением того, что он сначала проверяет, достаточно ли в этом буфере символов char, и потенциально гораздо эффективнее.
Параметры:
dst - Массив, в который будут записаны символы
offset - Смещение в массиве первого символа для записи; должно быть неотрицательным и не больше dst.length
length - Максимальное количество символов, которые будут записаны в заданный массив; должно быть неотрицательным и не больше dst.length - offset
Возвращает:
Этот буфер
Исключения:
BufferUnderflowException - Если в этом буфере осталось меньше length символов
IndexOutOfBoundsException - Если условия на параметры offset и length не выполнены

get

public CharBuffer get(char[] dst)

Метод get для относительно большого объёма данных.

Этот метод переносит символы из этого буфера в заданный целевой массив. Вызов этого метода в форме src.get(a) ведет себя точно так же, как вызов

src.get(a, 0, a.length)
Параметры:
dst - Целевой массив
Возвращает:
Этот буфер
Исключения:
BufferUnderflowException - Если в этом буфере осталось меньше length символов

put

public CharBuffer put(CharBuffer src)

Метод put для относительно большого объёма данных (дополнительная операция).

Этот метод переносит оставшиеся символы из заданного исходного буфера в этот буфер. Если оставшихся символов в исходном буфере больше, чем в этом буфере, то есть, если src.remaining() > remaining(), то символы не переносятся, и выбрасывается исключение BufferOverflowException.

В противном случае этот метод копирует n = src.remaining() символов из заданного буфера в этот буфер, начиная с текущей позиции каждого буфера. Позиции обоих буферов затем увеличиваются на n.

Другими словами, вызов этого метода в форме dst.put(src) имеет точно такой же эффект, как цикл

while (src.hasRemaining())
         dst.put(src.get());
за исключением того, что сначала проверяется наличие достаточного места в этом буфере, и это потенциально намного эффективнее.
Параметры:
src - Исходный буфер, из которого должны быть считаны символы; не должен быть этим буфером
Возвращает:
Этот буфер
Исключения:
BufferOverflowException - Если в этом буфере недостаточно места для оставшихся символов в исходном буфере
IllegalArgumentException - Если исходный буфер является этим буфером
ReadOnlyBufferException - Если этот буфер только для чтения

put

public CharBuffer put(char[] src,
                      int offset,
                      int length)

Метод put для относительно большого объёма данных (дополнительная операция).

Этот метод переносит символы в этот буфер из заданного исходного массива. Если символов для копирования из массива больше, чем осталось в этом буфере, то есть, если length > remaining(), то символы не переносятся, и выбрасывается исключение BufferOverflowException.

В противном случае этот метод копирует length символов из заданного массива в этот буфер, начиная с заданного смещения в массиве и с текущей позиции этого буфера. Позиция этого буфера затем увеличивается на length.

Другими словами, вызов этого метода в форме dst.put(src, off, len) имеет точно такой же эффект, как цикл

for (int i = off; i < off + len; i++)
         dst.put(a[i]);
за исключением того, что сначала проверяется наличие достаточного места в этом буфере, и это потенциально намного эффективнее.
Параметры:
src - Массив, из которого должны быть считаны символы
offset - Смещение в массиве первого символа для чтения; должно быть неотрицательным и не больше array.length
length - Количество символов для чтения из заданного массива; должно быть неотрицательным и не больше array.length - offset
Возвращает:
Этот буфер
Исключения:
BufferOverflowException - Если в этом буфере недостаточно места
IndexOutOfBoundsException - Если условия на параметры offset и length не выполнены
ReadOnlyBufferException - Если этот буфер только для чтения

put

public final CharBuffer put(char[] src)

Метод put для относительно большого объёма данных (дополнительная операция).

Этот метод переносит всё содержимое заданного исходного массива символов в этот буфер. Вызов этого метода в форме dst.put(a) ведет себя точно так же, как вызов

dst.put(a, 0, a.length)
Параметры:
src - Исходный массив
Возвращает:
Этот буфер
Исключения:
BufferOverflowException - Если в этом буфере недостаточно места
ReadOnlyBufferException - Если этот буфер только для чтения

put

public CharBuffer put(String src,
                      int start,
                      int end)

Метод put для относительно большого объёма данных (дополнительная операция).

Этот метод переносит символы из заданной строки в этот буфер. Если символов для копирования из строки больше, чем осталось в этом буфере, то есть, если end - start > remaining(), то символы не переносятся, и выбрасывается исключение BufferOverflowException.

В противном случае этот метод копирует n = end - start символов из заданной строки в этот буфер, начиная с заданного start индекса и с текущей позиции этого буфера. Позиция этого буфера затем увеличивается на n.

Другими словами, вызов этого метода в форме dst.put(src, start, end) имеет точно такой же эффект, как цикл

for (int i = start; i < end; i++)
         dst.put(src.charAt(i));
за исключением того, что сначала проверяется наличие достаточного места в этом буфере, и это потенциально намного эффективнее.
Параметры:
src - Строка, из которой должны быть считаны символы
start - Смещение в строке первого символа для чтения; должно быть неотрицательным и не больше string.length()
end - Смещение в строке последнего символа для чтения, плюс один; должно быть неотрицательным и не больше string.length()
Возвращает:
Этот буфер
Исключения:
BufferOverflowException - Если в этом буфере недостаточно места
IndexOutOfBoundsException - Если условия на параметры start и end не выполнены
ReadOnlyBufferException - Если этот буфер только для чтения

put

public final CharBuffer put(String src)

Метод put для относительно большого объёма данных (дополнительная операция).

Этот метод переносит всё содержимое заданной строки в этот буфер. Вызов этого метода в форме dst.put(s) ведет себя точно так же, как вызов

dst.put(s, 0, s.length())
Параметры:
src - Исходная строка
Возвращает:
Этот буфер
Исключения:
BufferOverflowException - Если в этом буфере недостаточно места
ReadOnlyBufferException - Если этот буфер только для чтения

hasArray

public final boolean hasArray()

Определяет, поддерживается ли этот буфер доступным массивом символов.

Если этот метод возвращает true, то методы array и arrayOffset могут безопасно быть вызваны.

Указано в:
hasArray в классе Buffer
Возвращает:
true тогда и только тогда, когда этот буфер поддерживается массивом и не является только для чтения

array

public final char[] array()

Возвращает массив символов, который поддерживает этот буфер (дополнительная операция).

Изменения в содержимом этого буфера приведут к изменению содержимого возвращённого массива, и наоборот.

Вызовите метод hasArray перед вызовом этого метода, чтобы убедиться, что этот буфер имеет доступный поддерживающий массив.

Указано в:
array в классе Buffer
Возвращает:
Массив, который поддерживает этот буфер
Исключения:
ReadOnlyBufferException - Если этот буфер поддерживается массивом, но является только для чтения
UnsupportedOperationException - Если этот буфер не поддерживается доступным массивом

arrayOffset

public final int arrayOffset()

Возвращает смещение в поддерживающем массиве этого буфера первого элемента буфера (дополнительная операция).

Если этот буфер поддерживается массивом, то позиция буфера p соответствует индексу массива p + arrayOffset().

Вызовите метод hasArray перед вызовом этого метода, чтобы убедиться, что этот буфер имеет доступный поддерживающий массив.

Указано в:
arrayOffset в классе Buffer
Возвращает:
Смещение в массиве этого буфера первого элемента буфера
Исключения:
ReadOnlyBufferException - Если этот буфер поддерживается массивом, но является только для чтения
UnsupportedOperationException - Если этот буфер не поддерживается доступным массивом

compact

public abstract CharBuffer compact()

Сжимает этот буфер (дополнительная операция).

Символы между текущей позицией буфера и его границей (если таковые имеются) копируются в начало буфера. То есть, символ с индексом p = position() копируется в индекс ноль, символ с индексом p + 1 копируется в индекс один, и так далее, пока символ с индексом limit() - 1 копируется в индекс n = limit() - 1 - p. Позиция буфера затем устанавливается в n+1, а его граница — в его ёмкость. Отметка (если определена) отбрасывается.

Позиция буфера устанавливается в количество скопированных символов, а не в ноль, так что вызов этого метода может быть немедленно последовать вызовом другого относительного метода put.

Возвращает:
Этот буфер
Исключения:
ReadOnlyBufferException - Если этот буфер только для чтения

isDirect

public abstract boolean isDirect()

Определяет, является ли этот буфер символов прямым.

Указано в:
isDirect в классе Buffer
Возвращает:
true если, и только если, этот буфер является прямым

hashCode

public int hashCode()

Возвращает текущий код хэша этого буфера.

Код хэша буфера символов зависит только от его оставшихся элементов; то есть, от элементов с position() до, включая, элемент в limit() - 1.

Поскольку коды хэша буферов зависят от содержимого, не рекомендуется использовать буферы в качестве ключей в хэш-картах или подобных структурах данных, если неизвестно, что их содержимое не изменится.

Overrides:
hashCode в классе Object
Возвращает:
Текущий код хэша этого буфера
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

equals

public boolean equals(Object ob)

Определяет, равен ли этот буфер другому объекту.

Два буфера символов равны тогда и только тогда, когда:

  1. У них одинаковый тип элементов,

  2. У них одинаковое количество оставшихся элементов, и

  3. Две последовательности оставшихся элементов, независимо от своих начальных позиций, точечно равны.

Буфер символов не равен ни одному другому типу объекта.

Overrides:
equals в классе Object
Параметры:
ob - Объект, с которым нужно сравнить этот буфер
Возвращает:
true тогда и только тогда, когда этот буфер равен заданному объекту
См. также:
Object.hashCode(), HashMap

compareTo

public int compareTo(CharBuffer that)

Сравнивает этот буфер с другим.

Два буфера символов сравниваются путем лексикографического сравнения их последовательностей оставшихся элементов, без учета начальной позиции каждой последовательности в соответствующем буфере. Пары char элементов сравниваются так, как если бы вызывали Character.compare(char,char).

Буфер символов не сравним ни с каким другим типом объекта.

Specified by:
compareTo в интерфейсе Comparable<CharBuffer>
Параметры:
that - объект для сравнения.
Возвращает:
Отрицательное целое число, ноль или положительное целое число, если этот буфер меньше, равен или больше заданного буфера

mismatch

public int mismatch(CharBuffer that)

Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером. Индекс относительный к position каждого буфера и будет в диапазоне от 0 (включительно) до меньшего из remaining элементов в каждом буфере (исключительно).

Если два буфера имеют общую префиксную часть, то возвращаемый индекс равен длине общей префиксной части, и это означает, что несовпадение между двумя буферами происходит в этом индексе в соответствующих буферах. Если один буфер является правильным префиксом другого, то возвращаемый индекс равен меньшему из оставшихся элементов в каждом буфере, и это означает, что индекс действителен только для буфера с большим количеством оставшихся элементов. В противном случае несовпадения нет.

Параметры:
that - Буфер байтов, подлежащий проверке на несовпадение с этим буфером
Возвращает:
Относительный индекс первого несовпадения между этим и заданным буфером, в противном случае -1, если несовпадения нет.
Since:
11

toString

public String toString()

Возвращает строку, содержащую символы в этом буфере.

Первый символ результирующей строки будет символом в позиции этого буфера, а последний символ — символом с индексом limit() - 1. Вызов этого метода не изменяет позицию буфера.

Specified by:
toString в интерфейсе CharSequence
Overrides:
toString в классе Object
Возвращает:
Указанную строку

length

public final int length()

Возвращает длину этого буфера символов.

При рассматривании как последовательности символов длина буфера символов просто соответствует количеству символов между позицией (включительно) и пределом (исключительно); то есть, она эквивалентна remaining().

Specified by:
length в интерфейсе CharSequence
Возвращает:
Длина этого буфера символов

charAt

public final char charAt(int index)

Считывает символ по заданному индексу относительно текущей позиции.

Specified by:
charAt в интерфейсе CharSequence
Параметры:
index - Индекс символа для чтения, относительно позиции; должен быть неотрицательным и меньше remaining()
Возвращает:
Символ по индексу position() + index
Throws:
IndexOutOfBoundsException - Если условия на index не соблюдаются

subSequence

public abstract CharBuffer subSequence(int start,
                                       int end)

Создает новый буфер символов, представляющий указанную подпоследовательность этого буфера, относительно текущей позиции.

Новый буфер будет совместно использовать содержимое этого буфера; то есть, если содержимое этого буфера изменяемо, то изменения в одном буфере приведут к изменению другого. Ёмкость нового буфера будет равна ёмкости этого буфера, его позиция будет position() + start, а его предел — position() + end. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и он будет только для чтения, если и только если этот буфер является только для чтения.

Specified by:
subSequence в интерфейсе CharSequence
Параметры:
start - Индекс, относительный к текущей позиции, первого символа в подпоследовательности; должен быть неотрицательным и не больше remaining()
end - Индекс, относительный к текущей позиции, символа, следующего за последним символом в подпоследовательности; должен быть не меньше start и не больше remaining()
Возвращает:
Новый буфер символов
Throws:
IndexOutOfBoundsException - Если условия на start и end не соблюдаются

append

public CharBuffer append(CharSequence csq)

Добавляет указанную последовательность символов к этому буферу (необязательная операция).

Вызов этого метода в форме dst.append(csq) ведет себя точно так же, как вызов

dst.put(csq.toString())

В зависимости от спецификации toString для последовательности символов csq, вся последовательность может не быть добавлена. Например, вызов метода toString буфера символов вернет подпоследовательность, содержимое которой зависит от позиции и предела буфера.

Specified by:
append в интерфейсе Appendable
Параметры:
csq - Последовательность символов для добавления. Если csq равно null, то четыре символа "null" добавляются к этому буферу символов.
Возвращает:
Этот буфер
Throws:
BufferOverflowException - Если в этом буфере недостаточно места
ReadOnlyBufferException - Если этот буфер только для чтения
Since:
1.5

append

public CharBuffer append(CharSequence csq,
                         int start,
                         int end)

Добавляет подпоследовательность указанной последовательности символов в этот буфер (необязательная операция).

Вызов этого метода в форме dst.append(csq, start, end) когда csq не равно null, ведет себя точно так же, как вызов

dst.put(csq.subSequence(start, end).toString())
Specified by:
append в интерфейсе Appendable
Параметры:
csq - Последовательность символов, из которой будет добавлена подпоследовательность. Если csq равно null, то символы будут добавлены как если бы csq содержало четыре символа "null".
start - Индекс первого символа в подпоследовательности
end - Индекс символа, следующего за последним символом в подпоследовательности
Возвращает:
Этот буфер
Throws:
BufferOverflowException - Если в этом буфере недостаточно места
IndexOutOfBoundsException - Если start или end отрицательны, start больше end, или end больше csq.length()
ReadOnlyBufferException - Если этот буфер только для чтения
Since:
1.5

append

public CharBuffer append(char c)

Добавляет указанный символ к этому буферу (необязательная операция).

Вызов этого метода в форме dst.append(c) ведет себя точно так же, как вызов

dst.put(c)
Specified by:
append в интерфейсе Appendable
Параметры:
c - Добавляемый 16-битный символ
Возвращает:
Этот буфер
Throws:
BufferOverflowException - Если в этом буфере недостаточно места
ReadOnlyBufferException - Если этот буфер только для чтения
Since:
1.5

order

public abstract ByteOrder order()

Получает порядок байтов этого буфера.

Порядок байтов буфера символов, созданного путем выделения или путем обертывания существующего массива char, — это native order базового оборудования. Порядок байтов буфера символов, созданного в качестве представления буфера байтов, — это порядок буфера байтов в момент создания представления.

Возвращает:
Порядок байтов этого буфера

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/CharBuffer.html

Spec-Zone .ru
спецификации, руководства, описания, API