Compartir a través de


ByteBuffer Clase

Definición

Búfer de bytes.

[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
Herencia
ByteBuffer
Derivado
Atributos
Implementaciones

Comentarios

Búfer de bytes.

Esta clase define seis categorías de operaciones en búferes de bytes:

<ul>

<Li>

Métodos absolutos y relativos #get() <i>get</i>#put(byte) <i>put</i> que leen y escriben bytes únicos;

</Li>

<Li>

Métodos relativos #get(byte[]) <i>bulk get</i> que transfieren secuencias contiguas de bytes de este búfer a una matriz;

</Li>

<Li>

Métodos relativos #put(byte[]) <i>bulk put</i> que transfieren secuencias contiguas de bytes de una matriz de bytes u otro búfer de bytes en este búfer;

</Li>

<Li>

Absolutos y relativos #getChar() <i>get</i> y #putChar(char) <i>put</i> métodos que leen y escriben valores de otros tipos primitivos, traduciéndolos a y desde secuencias de bytes en un orden de bytes determinado;

</Li>

<Li>

Métodos para crear búferes de vista, que permiten que un búfer de bytes se vea como un búfer que contiene valores de algún otro tipo primitivo; y

</Li>

<Li>

Métodos para #compact compacting, #duplicate duplicatingy #slice slicing un búfer de bytes.

</Li>

</ul>

Los búferes de bytes se pueden crear mediante #allocate <i>allocation</i>, que asigna espacio para el búfer.

contenido o por una matriz de #wrap(byte[]) <i>wrapping</i> bytes existente en un búfer.

"direct"><h2> Direct frente a búferes <no directos /h2>

Un búfer de bytes es directo o no directo. Dado un búfer de bytes directo, la máquina virtual Java realizará un mejor esfuerzo para realizar operaciones nativas de E/S directamente sobre él. Es decir, intentará evitar copiar el contenido del búfer en (o desde) un búfer intermedio antes (o después) de cada invocación de una de las operaciones de E/S nativas del sistema operativo subyacente.

Se puede crear un búfer de bytes directo invocando el #allocateDirect(int) allocateDirect método de fábrica de esta clase. Los búferes devueltos por este método suelen tener costos de asignación y desasignación algo mayores que los búferes no directos. El contenido de los búferes directos puede residir fuera del montón normal recopilado por elementos no utilizados, por lo que es posible que su impacto en la superficie de memoria de una aplicación no sea obvio. Por lo tanto, se recomienda asignar búferes directos principalmente para búferes de larga duración grandes que están sujetos a las operaciones de E/S nativas del sistema subyacente. En general, es mejor asignar búferes directos solo cuando producen una ganancia medida en el rendimiento del programa.

Un búfer de bytes directo también se puede crear mediante java.nio.channels.FileChannel#map mapping una región de un archivo directamente en la memoria. Opcionalmente, una implementación de la plataforma Java puede admitir la creación de búferes de bytes directos a partir del código nativo a través de JNI. Si una instancia de uno de estos tipos de búferes hace referencia a una región de memoria inaccesible, un intento de acceder a esa región no cambiará el contenido del búfer y hará que se produzca una excepción no especificada en el momento del acceso o en algún momento posterior.

Si un búfer de bytes es directo o no directo puede determinarse invocando su #isDirect isDirect método. Este método se proporciona para que la administración explícita del búfer se pueda realizar en código crítico para el rendimiento.

"bin"><h2> Acceso a datos <binarios /h2>

Esta clase define métodos para leer y escribir valores de todos los demás tipos primitivos, excepto boolean. Los valores primitivos se traducen a (o desde) secuencias de bytes según el orden de bytes actual del búfer, que se puede recuperar y modificar a través de los #order order métodos . Los pedidos de bytes específicos se representan mediante instancias de la ByteOrder clase . El orden inicial de un búfer de bytes siempre ByteOrder#BIG_ENDIAN BIG_ENDIANes .

Para obtener acceso a datos binarios heterogéneos, es decir, secuencias de valores de diferentes tipos, esta clase define una familia de métodos get y put absolutos y relativos para cada tipo. Para los valores de punto flotante de 32 bits, por ejemplo, esta clase define:

<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>

Los métodos correspondientes se definen para los tipos char, , shortint, longy double. Los parámetros de índice de los métodos get y put absolutos están en términos de bytes en lugar del tipo que se lee o escribe.

"vistas">

Para obtener acceso a datos binarios homogéneos, es decir, secuencias de valores del mismo tipo, esta clase define métodos que pueden crear vistas de un búfer de bytes determinado. Un búfer de vista es simplemente otro búfer cuyo contenido está respaldado por el búfer de bytes. Los cambios en el contenido del búfer de bytes estarán visibles en el búfer de vista y viceversa; La posición, el límite y los valores de marca de los dos búferes son independientes. Por #asFloatBuffer() asFloatBuffer ejemplo, el método crea una instancia de la FloatBuffer clase respaldada por el búfer de bytes en el que se invoca el método. Los métodos de creación de vistas correspondientes se definen para los tipos char, short, int, longy double.

Los búferes de vista tienen tres ventajas importantes sobre las familias de métodos get y put específicos del tipo descritos anteriormente:

<ul>

<Li>

Un búfer de vista no se indexa en términos de bytes, sino en términos del tamaño específico del tipo de sus valores;

</Li>

<Li>

Un búfer de vista proporciona métodos de obtención y colocación masivo relativos que pueden transferir secuencias contiguas de valores entre un búfer y una matriz o algún otro búfer del mismo tipo; y

</Li>

<Li>

Un búfer de vista es potencialmente mucho más eficaz porque será directo si, y solo si, su búfer de bytes de respaldo es directo.

</Li>

</ul>

El orden de bytes de un búfer de vista se fija como el de su búfer de bytes en el momento en que se crea la vista.

<h2> Encadenamiento de <invocación /h2>

Los métodos de esta clase que, de lo contrario, no tienen un valor que devolver se especifican para devolver el búfer en el que se invocan. Esto permite encadenar invocaciones de método.

Secuencia de instrucciones

<blockquote>

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

</blockquote>

puede, por ejemplo, reemplazarse por la instrucción única.

<blockquote>

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

</blockquote>

Agregado en la versión 1.4.

Documentación de Java para java.nio.ByteBuffer.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Constructores

ByteBuffer(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

Propiedades

Char

Devuelve el carácter en la posición actual y aumenta la posición en 2.

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Double

Devuelve el doble en la posición actual y aumenta la posición en 8.

Float

Devuelve el float en la posición actual y aumenta la posición en 4.

Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
HasArray

Indica si este búfer está respaldado por una matriz de bytes accesible.

HasRemaining

Indica si hay elementos entre la posición actual y el límite.

(Heredado de Buffer)
Int

Devuelve el valor int en la posición actual y aumenta la posición en 4.

IsDirect

Devuelve true si se trata de un búfer directo.

(Heredado de Buffer)
IsReadOnly

Indica si este búfer es de solo lectura.

(Heredado de Buffer)
JniIdentityHashCode

Búfer de bytes.

(Heredado de Object)
JniPeerMembers

Búfer de bytes.

Long

Devuelve el long en la posición actual y aumenta la posición en 8.

PeerReference

Búfer de bytes.

(Heredado de Object)
Short

Devuelve el short en la posición actual y aumenta la posición en 2.

ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

AlignedSlice(Int32)

Crea un nuevo búfer de bytes cuyo contenido es una subsecuencia compartida y alineada del contenido de este búfer.

AlignmentOffset(Int32, Int32)

Devuelve la dirección de memoria, que apunta al byte en el índice especificado, módulo del tamaño de unidad especificado.

Allocate(Int32)

Asigna un nuevo búfer de bytes.

AllocateDirect(Int32)

Asigna un nuevo búfer de bytes directo.

ArrayOffset()

Devuelve el desplazamiento dentro de la matriz de respaldo de este búfer del primer elemento del búfer   (operación opcional).

AsCharBuffer()

Crea una vista de este búfer de bytes como un búfer char.

AsDoubleBuffer()

Crea una vista de este búfer de bytes como un búfer doble.

AsFloatBuffer()

Crea una vista de este búfer de bytes como un búfer float.

AsIntBuffer()

Crea una vista de este búfer de bytes como un búfer int.

AsLongBuffer()

Crea una vista de este búfer de bytes como un búfer largo.

AsReadOnlyBuffer()

Crea un búfer de bytes de solo lectura que comparte el contenido de este búfer.

AsShortBuffer()

Crea una vista de este búfer de bytes como un búfer corto.

Capacity()

Devuelve la capacidad de este búfer.

(Heredado de Buffer)
Clear()

Borra este búfer.

(Heredado de Buffer)
Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Compact()

Compacta este búfer   (operación opcional).

CompareTo(ByteBuffer)

Compara este búfer con otro.

Dispose()

Búfer de bytes.

(Heredado de Object)
Dispose(Boolean)

Búfer de bytes.

(Heredado de Object)
Duplicate()

Crea un nuevo búfer de bytes que comparte el contenido de este búfer.

Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
Flip()

Voltea este búfer.

(Heredado de Buffer)
Get()

Método get relativo.

Get(Byte[])

Método de obtención masiva relativa.

Get(Byte[], Int32, Int32)

Método de obtención masiva relativa.

Get(Int32)

Método get absoluto.

GetChar(Int32)

Método get absoluto para leer un valor char.

GetDirectBufferAddress()

Búfer de bytes.

(Heredado de Buffer)
GetDouble(Int32)

Método get absoluto para leer un valor doble.

GetFloat(Int32)

Método get absoluto para leer un valor float.

GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
GetInt(Int32)

Método get absoluto para leer un valor int.

GetLong(Int32)

Método get absoluto para leer un valor largo.

GetShort(Int32)

Método get absoluto para leer un valor corto.

JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Limit()

Devuelve el límite de este búfer.

(Heredado de Buffer)
Limit(Int32)

Establece el límite de este búfer.

(Heredado de Buffer)
Mark()

Establece la marca de este búfer en su posición.

(Heredado de Buffer)
Mismatch(ByteBuffer)

Busca y devuelve el índice relativo del primer error de coincidencia entre este búfer y un búfer determinado.

Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
Order()

Recupera el orden de bytes de este búfer.

Order(ByteOrder)

Modifica el orden de bytes de este búfer.

Position()

Devuelve la posición de este búfer.

(Heredado de Buffer)
Position(Int32)

Establece la posición de este búfer.

(Heredado de Buffer)
Put(Byte[])

Método de colocación masiva relativa   (operación opcional).

Put(Byte[], Int32, Int32)

Método de colocación masiva relativa   (operación opcional).

Put(ByteBuffer)

Método de colocación masiva relativa   (operación opcional).

Put(Int32, SByte)

Método put absoluto   (operación opcional).

Put(SByte)

Método put relativo   (operación opcional).

PutChar(Char)

Método put relativo para escribir un valor char   (operación opcional).

PutChar(Int32, Char)

Método put absoluto para escribir un valor char   (operación opcional).

PutDouble(Double)

Método put relativo para escribir un valor doble   (operación opcional).

PutDouble(Int32, Double)

Método put absoluto para escribir un valor doble   (operación opcional).

PutFloat(Int32, Single)

Método put absoluto para escribir un valor float   (operación opcional).

PutFloat(Single)

Método put relativo para escribir un valor float   (operación opcional).

PutInt(Int32)

Método put relativo para escribir un valor int   (operación opcional).

PutInt(Int32, Int32)

Método put absoluto para escribir un valor int   (operación opcional).

PutLong(Int32, Int64)

Método put absoluto para escribir un valor largo   (operación opcional).

PutLong(Int64)

Método put relativo para escribir un valor largo   (operación opcional).

PutShort(Int16)

Método put relativo para escribir un valor corto   (operación opcional).

PutShort(Int32, Int16)

Método put absoluto para escribir un valor corto   (operación opcional).

Remaining()

Devuelve el número de elementos entre la posición actual y el límite.

(Heredado de Buffer)
Reset()

Restablece la posición de este búfer a la posición marcada anteriormente.

(Heredado de Buffer)
Rewind()

Rebobina este búfer.

(Heredado de Buffer)
SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
Slice()

Crea un nuevo búfer de bytes cuyo contenido es una subsecuencia compartida del contenido de este búfer.

Slice(Int32, Int32)

Crea un nuevo búfer de bytes cuyo contenido es una subsecuencia compartida del contenido de este búfer.

Slice(Int32, Int32)

Crea un nuevo búfer cuyo contenido es una subsecuencia compartida del contenido de este búfer.

(Heredado de Buffer)
ToArray<T>()

Búfer de bytes.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Búfer de bytes.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wrap(Byte[])

Ajusta una matriz de bytes en un búfer.

Wrap(Byte[], Int32, Int32)

Ajusta una matriz de bytes en un búfer.

Implementaciones de interfaz explícitas

IComparable.CompareTo(Object)

Búfer de bytes.

IJavaPeerable.Disposed()

Búfer de bytes.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Búfer de bytes.

(Heredado de Object)
IJavaPeerable.Finalized()

Búfer de bytes.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Búfer de bytes.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Búfer de bytes.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Búfer de bytes.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Búfer de bytes.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Búfer de bytes.

GetJniTypeName(IJavaPeerable)

Búfer de bytes.

Se aplica a