BlobInputStream Clase
- java.
lang. Object - InputStream
- com.
microsoft. azure. storage. blob. BlobInputStream
- com.
public class BlobInputStream
Proporciona un flujo de entrada para leer un recurso de blob determinado.
Resumen del constructor
Constructor | Description |
---|---|
BlobInputStream(final CloudBlob parentBlob, final AccessCondition accessCondition, final BlobRequestOptions options, final OperationContext opContext) |
Inicializa una nueva instancia de la clase BlobInputStream. |
BlobInputStream(long blobRangeOffset, Long blobRangeLength, final CloudBlob parentBlob, final AccessCondition accessCondition, final BlobRequestOptions options, final OperationContext opContext) |
Inicializa una nueva instancia de la clase BlobInputStream. Tenga en cuenta que si
|
Resumen del método
Modificador y tipo | Método y descripción |
---|---|
synchronized int |
available()
Devuelve una estimación del número de bytes que se pueden leer (o omitir) de esta secuencia de entrada sin bloquear la siguiente invocación de un método para esta secuencia de entrada. La siguiente invocación podría ser el mismo subproceso u otro subproceso. Una sola lectura o omisión de estos muchos bytes no se bloqueará, pero puede leer o omitir menos bytes. |
synchronized void |
close()
Cierra este flujo de entrada y libera los recursos del sistema asociados a la secuencia. |
synchronized void |
mark(final int readlimit)
Marca la posición actual en este flujo de entrada. Una llamada posterior al método reset cambia la posición de esta secuencia en la última posición marcada para que las lecturas posteriores vuelvan a leer los mismos bytes. |
boolean |
markSupported()
Comprueba si esta secuencia de entrada admite los métodos mark y reset. Si se admiten o no marcas y restablecimientos es una propiedad invariable de una instancia de flujo de entrada determinada. El método markSupported de InputStream devuelve false. |
int |
read()
Lee el siguiente byte de datos del flujo de entrada. El byte de valor se devuelve como un valor int en el intervalo de 0 a 255. Si no hay ningún byte disponible porque se ha alcanzado el final de la secuencia, se devuelve el valor -1. Este método se bloquea hasta que los datos de entrada están disponibles, se detecta el final de la secuencia o se produce una excepción. |
int |
read(final byte[] b)
Lee algún número de bytes del flujo de entrada y los almacena en la matriz de búfer . El número de bytes leídos realmente se devuelve como un entero. Este método se bloquea hasta que los datos de entrada están disponibles, se detecta el final del archivo o se produce una excepción. Si la longitud de es cero, no se lee ningún bytes y se devuelve 0; de lo contrario, hay un intento de leer al menos un byte. Si no hay ningún byte disponible porque la secuencia está al final del archivo, se devuelve el valor -1; de lo contrario, se lee y almacena al menos un byte en . La primera lectura de bytes se almacena en el elemento , la siguiente en , etc. El número de bytes leídos es, como máximo, igual que la longitud de . Vamos a ser el número de bytes leídos realmente; estos bytes se almacenarán en elementos a través de , dejando los elementos sin verse afectados. El método para la clase InputStream tiene el mismo efecto que: |
int |
read(final byte[] b, final int off, final int len)
Lee hasta bytes de datos del flujo de entrada en una matriz de bytes. Se intenta leer tantos bytes como bytes, pero se puede leer un número menor. El número de bytes leídos realmente se devuelve como un entero. Este método se bloquea hasta que los datos de entrada están disponibles, se detecta el final del archivo o se produce una excepción. Si es cero, no se leen bytes y se devuelve 0; de lo contrario, hay un intento de leer al menos un byte. Si no hay ningún byte disponible porque la secuencia está al final del archivo, se devuelve el valor -1; de lo contrario, se lee y almacena al menos un byte en . La primera lectura de bytes se almacena en el elemento , la siguiente en , etc. El número de bytes leídos es, como máximo, igual que . Vamos a ser el número de bytes leídos realmente; estos bytes se almacenarán en elementos a través de , dejando los elementos sin verse afectados. En cada caso, los elementos a través de y a través de no se ven afectados. El método para la clase InputStream simplemente llama al método repetidamente. Si la primera llamada de este tipo da como resultado una excepción , esa excepción se devuelve de la llamada al método . Si alguna llamada posterior a da como resultado un , la excepción se detecta y se trata como si fuera el final del archivo; los bytes leídos hasta ese punto se almacenan en y el número de bytes leídos antes de que se devuelva la excepción. La implementación predeterminada de este método se bloquea hasta que se haya leído la cantidad solicitada de datos de entrada, se detecte el final del archivo o se produzca una excepción. Se recomienda que las subclases proporcionen una implementación más eficaz de este método. |
synchronized void |
reset()
Cambia la posición de esta secuencia a la posición en el momento en que se llamó por última vez al método mark en esta secuencia de entrada. Tenga en cuenta que cambiar la posición de la secuencia de lectura del blob deshabilitará la comprobación de BLOB MD5. |
synchronized long |
skip(final long n)
Omite y descarta n bytes de datos de esta secuencia de entrada. El método skip puede, por diversos motivos, terminar omitiendo un número menor de bytes, posiblemente 0. Esto puede resultar de cualquiera de una serie de condiciones; alcanzar el final del archivo antes de que se omitan n bytes es solo una posibilidad. Se devuelve el número real de bytes omitidos. Si n es negativo, no se omite ningún bytes. Tenga en cuenta que cambiar la posición de la secuencia de lectura del blob deshabilitará la comprobación de BLOB MD5. |
Detalles del constructor
BlobInputStream
protected BlobInputStream(final CloudBlob parentBlob, final AccessCondition accessCondition, final BlobRequestOptions options, final OperationContext opContext)
Inicializa una nueva instancia de la clase BlobInputStream.
Parameters:
Throws:
BlobInputStream
protected BlobInputStream(long blobRangeOffset, Long blobRangeLength, final CloudBlob parentBlob, final AccessCondition accessCondition, final BlobRequestOptions options, final OperationContext opContext)
Inicializa una nueva instancia de la clase BlobInputStream. Tenga en cuenta que siblobRangeOffset
</code> is not<code>0
</code> or<code>blobRangeLength
</code> is not<code>null
</code> , there will be no content MD5 verification.</p>
Parameters:
blobRangeOffset
- Desplazamiento de los datos de blobs que se van a iniciar el flujo.
blobRangeLength
- Cuántos datos debe devolver el flujo después de blobRangeOffset.
parentBlob
- Objeto CloudBlob que representa el blob al que está asociada esta secuencia.
accessCondition
- Objeto AccessCondition que representa las condiciones de acceso del blob.
options
- Objeto BlobRequestOptions que representa que especifica las opciones adicionales de la solicitud.
opContext
- Objeto OperationContext que se usa para realizar un seguimiento de la ejecución de la operación.
Throws:
StorageException
- Excepción que representa cualquier error que se produjo durante la operación.
Detalles del método
available
public synchronized int available()
Devuelve una estimación del número de bytes que se pueden leer (o omitir) de esta secuencia de entrada sin bloquear la siguiente invocación de un método para esta secuencia de entrada. La siguiente invocación podría ser el mismo subproceso u otro subproceso. Una sola lectura o omisión de estos muchos bytes no se bloqueará, pero puede leer o omitir menos bytes.
Returns:
que int
representa una estimación del número de bytes que se pueden leer (o omitir) de esta secuencia de entrada sin bloqueo, o 0 cuando llega al final del flujo de entrada.
Throws:
IOException
- Si se produce un error de E/S.
close
public synchronized void close()
Cierra este flujo de entrada y libera los recursos del sistema asociados a la secuencia.
Throws:
IOException
- Si se produce un error de E/S.
mark
public synchronized void mark(final int readlimit)
Marca la posición actual en este flujo de entrada. Una llamada posterior al método reset cambia la posición de esta secuencia en la última posición marcada para que las lecturas posteriores vuelvan a leer los mismos bytes.
Parameters:
readlimit
- que int
representa el límite máximo de bytes que se pueden leer antes de que la posición de marca no sea válida.
markSupported
public boolean markSupported()
Comprueba si esta secuencia de entrada admite los métodos mark y reset. Si se admiten o no marcas y restablecimientos es una propiedad invariable de una instancia de flujo de entrada determinada. El método markSupported de InputStream devuelve false.
Returns:
True
si esta instancia de secuencia admite los métodos mark y reset; False
Lo contrario.
read
public int read()
Lee el siguiente byte de datos del flujo de entrada. El byte de valor se devuelve como un valor int en el intervalo de 0 a 255. Si no hay ningún byte disponible porque se ha alcanzado el final de la secuencia, se devuelve el valor -1. Este método se bloquea hasta que los datos de entrada están disponibles, se detecta el final de la secuencia o se produce una excepción.
Returns:
que int
representa el número total de bytes leídos en el búfer o -1 si no hay más datos porque se ha alcanzado el final de la secuencia.
Throws:
IOException
- Si se produce un error de E/S.
read
public int read(final byte[] b)
Lee algún número de bytes del flujo de entrada y los almacena en la matriz de búfer . El número de bytes leídos realmente se devuelve como un entero. Este método se bloquea hasta que los datos de entrada están disponibles, se detecta el final del archivo o se produce una excepción. Si la longitud de es cero, no se lee ningún bytes y se devuelve 0; de lo contrario, hay un intento de leer al menos un byte. Si no hay ningún byte disponible porque la secuencia está al final del archivo, se devuelve el valor -1; de lo contrario, se lee y almacena al menos un byte en .
La primera lectura de bytes se almacena en el elemento , la siguiente en , etc. El número de bytes leídos es, como máximo, igual que la longitud de . Vamos a ser el número de bytes leídos realmente; estos bytes se almacenarán en elementos a través de , dejando los elementos sin verse afectados.
El método para la clase InputStream tiene el mismo efecto que:
Parameters:
b
- Matriz byte
que representa el búfer en el que se leen los datos.
Throws:
IOException
- Si el primer byte no se puede leer por ningún motivo distinto del final del archivo, si se ha cerrado la secuencia de entrada o si se produce algún otro error de E/S.
NullPointerException
- Si la byte
matriz b
es null.
read
public int read(final byte[] b, final int off, final int len)
Lee hasta bytes de datos del flujo de entrada en una matriz de bytes. Se intenta leer tantos bytes como bytes, pero se puede leer un número menor. El número de bytes leídos realmente se devuelve como un entero. Este método se bloquea hasta que los datos de entrada están disponibles, se detecta el final del archivo o se produce una excepción.
Si es cero, no se leen bytes y se devuelve 0; de lo contrario, hay un intento de leer al menos un byte. Si no hay ningún byte disponible porque la secuencia está al final del archivo, se devuelve el valor -1; de lo contrario, se lee y almacena al menos un byte en .
La primera lectura de bytes se almacena en el elemento , la siguiente en , etc. El número de bytes leídos es, como máximo, igual que . Vamos a ser el número de bytes leídos realmente; estos bytes se almacenarán en elementos a través de , dejando los elementos sin verse afectados.
En cada caso, los elementos a través de y a través de no se ven afectados.
El método para la clase InputStream simplemente llama al método repetidamente. Si la primera llamada de este tipo da como resultado una excepción , esa excepción se devuelve de la llamada al método . Si alguna llamada posterior a da como resultado un , la excepción se detecta y se trata como si fuera el final del archivo; los bytes leídos hasta ese punto se almacenan en y el número de bytes leídos antes de que se devuelva la excepción. La implementación predeterminada de este método se bloquea hasta que se haya leído la cantidad solicitada de datos de entrada, se detecte el final del archivo o se produzca una excepción. Se recomienda que las subclases proporcionen una implementación más eficaz de este método.
Parameters:
b
- Matriz byte
que representa el búfer en el que se leen los datos.
off
- que int
representa el desplazamiento inicial de la matriz en la byte
que se escriben los datos.
len
- que int
representa el número máximo de bytes que se van a leer.
Returns:
que int
representa el número total de bytes leídos en el búfer o -1 si no hay más datos porque se ha alcanzado el final de la secuencia.
Throws:
IOException
- Si el primer byte no se puede leer por ningún motivo distinto del final del archivo, o si se ha cerrado la secuencia de entrada, o si se produce algún otro error de E/S.
NullPointerException
- Si la byte
matriz b
es null.
IndexOutOfBoundsException
- Si off
es negativo, len
es negativo o len
es mayor que b.length - off
.
reset
public synchronized void reset()
Cambia la posición de esta secuencia a la posición en el momento en que se llamó por última vez al método mark en esta secuencia de entrada. Tenga en cuenta que cambiar la posición de la secuencia de lectura del blob deshabilitará la comprobación de BLOB MD5.
Throws:
IOException
- Si esta secuencia no se ha marcado o si la marca se ha invalidado.
skip
public synchronized long skip(final long n)
Omite y descarta n bytes de datos de esta secuencia de entrada. El método skip puede, por diversos motivos, terminar omitiendo un número menor de bytes, posiblemente 0. Esto puede resultar de cualquiera de una serie de condiciones; alcanzar el final del archivo antes de que se omitan n bytes es solo una posibilidad. Se devuelve el número real de bytes omitidos. Si n es negativo, no se omite ningún bytes.
Tenga en cuenta que cambiar la posición de la secuencia de lectura del blob deshabilitará la comprobación de BLOB MD5.
Parameters:
n
- que long
representa el número de bytes que se van a omitir.
Se aplica a
Azure SDK for Java