ByteBuffer Класс

Определение

Буфер байтов.

[Android.Runtime.Register("java/nio/ByteBuffer", DoNotGenerateAcw=true)]
public abstract class ByteBuffer : Java.Nio.Buffer, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IComparable
[<Android.Runtime.Register("java/nio/ByteBuffer", DoNotGenerateAcw=true)>]
type ByteBuffer = class
    inherit Buffer
    interface IComparable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Наследование
ByteBuffer
Производный
Атрибуты
Реализации

Комментарии

Буфер байтов.

Этот класс определяет шесть категорий операций при буферах байтов:

<ul>

<Литий>

Абсолютные и относительные и методы #get() <i>get</i>#put(byte) <i>put</i> , которые считывают и записывают отдельные байты;

</Литий>

<Литий>

Относительные #get(byte[]) <i>bulk get</i> методы, которые передают смежные последовательности байтов из этого буфера в массив;

</Литий>

<Литий>

Относительные #put(byte[]) <i>bulk put</i> методы, которые передают последовательные последовательности байтов из массива байтов или другого буфера байтов в этот буфер;

</Литий>

<Литий>

Абсолютные и относительные #getChar() <i>get</i>#putChar(char) <i>put</i> и методы, которые считывают и записывают значения других примитивных типов, переводя их в последовательности байтов в определенном порядке байтов;

</Литий>

<Литий>

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

</Литий>

<Литий>

Методы для #compact compacting, #duplicate duplicatingа также #slice slicing буфера байтов.

</Литий>

</ul>

Буферы байтов можно создать с помощью #allocate <i>allocation</i>этого буфера, который выделяет пространство для буфера.

содержимое или существующий #wrap(byte[]) <i>wrapping</i> массив байтов в буфер.

"direct"><h2> Direct и ненаправовые буферы </h2>

Буфер байтов — прямой или не прямой. Учитывая прямой буфер байтов, виртуальная машина Java сделает все возможное для выполнения собственных операций ввода-вывода непосредственно на нем. Т. е. он попытается избежать копирования содержимого буфера в промежуточный буфер до (или после) каждого вызова одной из собственных операций ввода-вывода базовой операционной системы.

Прямой буфер байтов может быть создан путем вызова #allocateDirect(int) allocateDirect метода фабрики этого класса. Буферы, возвращаемые этим методом, обычно имеют несколько более высокие затраты на выделение и распределение сделки, чем не прямые буферы. Содержимое прямых буферов может находиться за пределами обычной сборки мусора, поэтому их влияние на объем памяти приложения может оказаться не очевидным. Поэтому рекомендуется выделить прямые буферы в первую очередь для больших, длительных буферов, которые подвергаются собственным операциям ввода-вывода базовой системы. Как правило, рекомендуется выделять прямые буферы только в том случае, если они обеспечивают измеряемую производительность программы.

Прямой буфер байтов также может быть создан java.nio.channels.FileChannel#map mapping областью файла непосредственно в память. Реализация платформы Java может при необходимости поддерживать создание прямых буферов байтов из машинного кода с помощью JNI. Если экземпляр одного из этих типов буферов ссылается на недоступный регион памяти, попытка доступа к данному региону не изменит содержимое буфера и приведет к возникновению непреднамеренных исключений в момент доступа или в некоторое время.

Определяется ли буфер байтов прямым или ненаправным путем вызова метода #isDirect isDirect . Этот метод предоставляется таким образом, чтобы явное управление буферами можно было выполнять в критическом коде для производительности.

"bin"><h2 Access к двоичным данным </h2>>

Этот класс определяет методы для чтения и записи значений всех других примитивных типов, кроме boolean. Примитивные значения претворяются в последовательности байтов (или из) в соответствии с текущим порядком байтов буфера, которые могут быть извлечены и изменены с помощью #order order методов. Конкретные порядки байтов представлены экземплярами ByteOrder класса. Начальный порядок буфера байтов всегда ByteOrder#BIG_ENDIAN BIG_ENDIAN.

Для доступа к разнородным двоичным данным, то есть последовательности значений разных типов, этот класс определяет семейство абсолютных и относительных методов получения и помещать методы для каждого типа. Например, для 32-разрядных значений с плавающей запятой этот класс определяет:

<blockquote>

float  {@link #getFloat()}
            float  {@link #getFloat(int) getFloat(int index)}
             void  {@link #putFloat(float) putFloat(float f)}
             void  {@link #putFloat(int,float) putFloat(int index, float f)}

</blockquote>

Соответствующие методы определяются для типовchar, short, , intи longdouble. Параметры индекса абсолютного метода get и put являются с точки зрения байтов, а не типа, считываемого или записанного.

"представления">

Для доступа к однородным двоичным данным, то есть последовательности значений одного типа, этот класс определяет методы, которые могут создавать представления заданного буфера байтов. Буфер представления — это просто другой буфер, содержимое которого поддерживается буфером байтов. Изменения содержимого буфера байтов будут отображаться в буфере представления, и наоборот; Положение, ограничение и метки двух буферов являются независимыми. Например #asFloatBuffer() asFloatBuffer , метод создает экземпляр FloatBuffer класса, который поддерживается буфером байтов, на котором вызывается метод. Соответствующие методы создания представлений определяются для типов char, , short, intи longdouble.

Буферы представления имеют три важных преимущества по сравнению с семействами типов получения и установки методов, описанных выше:

<ul>

<Литий>

Буфер представления индексируется не с точки зрения байтов, а скорее с точки зрения размера его значений, зависящих от типа;

</Литий>

<Литий>

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

</Литий>

<Литий>

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

</Литий>

</ul>

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

<цепочка вызовов <h2> /h2>

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

Последовательность операторов

<blockquote>

bb.putInt(0xCAFEBABE);
            bb.putShort(3);
            bb.putShort(45);

</blockquote>

может, например, замениться одной инструкцией

<blockquote>

bb.putInt(0xCAFEBABE).putShort(3).putShort(45);

</blockquote>

Добавлено в версии 1.4.

Документация по Java для java.nio.ByteBuffer.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Конструкторы

ByteBuffer(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Char

Возвращает символ в текущей позиции и увеличивает позицию на 2.

Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Double

Возвращает двойное значение в текущей позиции и увеличивает позицию на 8.

Float

Возвращает значение float в текущей позиции и увеличивает позицию на 4.

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
HasArray

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

HasRemaining

Указывает, есть ли элементы между текущей позицией и ограничением.

(Унаследовано от Buffer)
Int

Возвращает int в текущей позиции и увеличивает позицию на 4.

IsDirect

Возвращает значение true, если это прямой буфер.

(Унаследовано от Buffer)
IsReadOnly

Указывает, доступен ли этот буфер только для чтения.

(Унаследовано от Buffer)
JniIdentityHashCode

Буфер байтов.

(Унаследовано от Object)
JniPeerMembers

Буфер байтов.

Long

Возвращает длину в текущей позиции и увеличивает позицию на 8.

PeerReference

Буфер байтов.

(Унаследовано от Object)
Short

Возвращает короткое значение текущей позиции и увеличивает позицию на 2.

ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

AlignedSlice(Int32)

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

AlignmentOffset(Int32, Int32)

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

Allocate(Int32)

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

AllocateDirect(Int32)

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

ArrayOffset()

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

AsCharBuffer()

Создает представление этого буфера байтов в виде буфера char.

AsDoubleBuffer()

Создает представление этого буфера байтов в виде двойного буфера.

AsFloatBuffer()

Создает представление этого буфера байтов в виде плавающего буфера.

AsIntBuffer()

Создает представление этого буфера байтов в виде буфера int.

AsLongBuffer()

Создает представление этого буфера байтов в виде длинного буфера.

AsReadOnlyBuffer()

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

AsShortBuffer()

Создает представление этого буфера байтов в виде короткого буфера.

Capacity()

Возвращает емкость этого буфера.

(Унаследовано от Buffer)
Clear()

Очищает этот буфер.

(Унаследовано от Buffer)
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Compact()

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

CompareTo(ByteBuffer)

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

Dispose()

Буфер байтов.

(Унаследовано от Object)
Dispose(Boolean)

Буфер байтов.

(Унаследовано от Object)
Duplicate()

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

Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
Flip()

Переворачивает этот буфер.

(Унаследовано от Buffer)
Get()

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

Get(Byte[])

Относительный метод массового получения .

Get(Byte[], Int32, Int32)

Относительный метод массового получения .

Get(Int32)

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

GetChar(Int32)

Абсолютный метод получения для чтения значения char.

GetDirectBufferAddress()

Буфер байтов.

(Унаследовано от Buffer)
GetDouble(Int32)

Абсолютный метод получения для чтения двойного значения.

GetFloat(Int32)

Абсолютный метод получения для чтения значения с плавающей запятой.

GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
GetInt(Int32)

Абсолютный метод получения для чтения значения int.

GetLong(Int32)

Абсолютный метод получения для чтения длинного значения.

GetShort(Int32)

Абсолютный метод получения для чтения короткого значения.

JavaFinalize()

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Limit()

Возвращает ограничение этого буфера.

(Унаследовано от Buffer)
Limit(Int32)

Задает ограничение этого буфера.

(Унаследовано от Buffer)
Mark()

Задает метку буфера в его позиции.

(Унаследовано от Buffer)
Mismatch(ByteBuffer)

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

Notify()

Пробуждение одного потока, ожидающего монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
Order()

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

Order(ByteOrder)

Изменяет порядок байтов этого буфера.

Position()

Возвращает позицию этого буфера.

(Унаследовано от Buffer)
Position(Int32)

Задает положение этого буфера.

(Унаследовано от Buffer)
Put(Byte[])

Относительный метод массового положить > >(необязательная операция).

Put(Byte[], Int32, Int32)

Относительный метод массового положить > >(необязательная операция).

Put(ByteBuffer)

Относительный метод массового положить > >(необязательная операция).

Put(Int32, SByte)

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

Put(SByte)

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

PutChar(Char)

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

PutChar(Int32, Char)

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

PutDouble(Double)

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

PutDouble(Int32, Double)

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

PutFloat(Int32, Single)

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

PutFloat(Single)

Относительный метод put для записи значения с плавающей плавающей запятой> >(необязательная операция).

PutInt(Int32)

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

PutInt(Int32, Int32)

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

PutLong(Int32, Int64)

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

PutLong(Int64)

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

PutShort(Int16)

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

PutShort(Int32, Int16)

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

Remaining()

Возвращает количество элементов между текущей позицией и ограничением.

(Унаследовано от Buffer)
Reset()

Сбрасывает позицию этого буфера в ранее помеченную позицию.

(Унаследовано от Buffer)
Rewind()

Перемотка этого буфера.

(Унаследовано от Buffer)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
Slice()

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

Slice(Int32, Int32)

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

Slice(Int32, Int32)

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

(Унаследовано от Buffer)
ToArray<T>()

Буфер байтов.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Буфер байтов.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wrap(Byte[])

Упаковывает массив байтов в буфер.

Wrap(Byte[], Int32, Int32)

Упаковывает массив байтов в буфер.

Явные реализации интерфейса

IComparable.CompareTo(Object)

Буфер байтов.

IJavaPeerable.Disposed()

Буфер байтов.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Буфер байтов.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Буфер байтов.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Буфер байтов.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Буфер байтов.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Буфер байтов.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Буфер байтов.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Буфер байтов.

GetJniTypeName(IJavaPeerable)

Буфер байтов.

Применяется к