SubStream Classe
- java.
lang. Object - InputStream
- com.
microsoft. azure. storage. blob. SubStream
- com.
public class SubStream
Resumo do Construtor
Construtor | Description |
---|---|
SubStream(InputStream source, long startIndex, long streamLength, Object lock) |
Cria uma nova instância de substream que particiona o fluxo encapsulado de até . Cada instância de substream que encapsula o mesmo subjacente deve compartilhar a mesma exclusão mútua para evitar condições de corrida de operações simultâneas. |
Resumo do método
Modificador e tipo | Método e descrição |
---|---|
void |
close()
Fecha o substream. |
InputStream | getInputStream() |
long | getLength() |
synchronized void |
mark(int readlimit)
Marca a posição atual no substream. Uma chamada subsequente para o método reposicionará o fluxo para essa posição armazenada. |
boolean |
markSupported()
A classe wrapper de substream só é compatível com fluxos de entrada markáveis e, portanto, sempre retornará true. Esse requisito é imposto no construtor de classe. |
int |
read()
Lê o próximo byte de dados do fluxo encapsulado. O byte de valor é retornado como um no intervalo para . Se nenhum byte estiver disponível porque o final do substream foi atingido, o valor será retornado. Esse método bloqueia até que os dados de entrada sejam disponíveis, o final do fluxo seja detectado ou uma exceção seja gerada. |
synchronized int |
read(byte[] b)
Lê alguns bytes do fluxo encapsulado e os armazena na matriz de buffers . O número de bytes realmente lidos é retornado como um inteiro. Esse método bloqueia até que os dados de entrada sejam disponíveis, o fim do arquivo seja detectado ou uma exceção seja gerada. Se o comprimento de for zero, nenhum bytes será lido e retornado; caso contrário, há uma tentativa de ler pelo menos um byte. Se nenhum byte estiver disponível porque o substream está no final do arquivo, o valor será retornado; caso contrário, pelo menos um byte é lido e armazenado em . A primeira leitura de byte é armazenada no elemento , a próxima no e assim por diante. O número de bytes lidos é, no máximo, igual ao comprimento de . Deixe k ser o número de bytes realmente lidos; esses bytes serão armazenados em elementos por meio de k, deixando os elementos k por meio de não afetados. O método para classe tem o mesmo efeito que: |
synchronized int |
read(byte[] b, int off, int len)
Lê até bytes de dados do substream. Armazena em buffer os dados do fluxo encapsulado para minimizar a sobrecarga de ignorar e ler. O wrappedstream só será invocado se o readBuffer não puder atender à solicitação de leitura. Para garantir resultados válidos, o fluxo encapsulado deve ser marcado antes da leitura do subfluxo. Isso nos permite redefinir para a posição relativa do subfluxo no fluxo encapsulado. O número de bytes realmente lidos é retornado como um inteiro. Todas essas operações são feitas de forma síncrona em um bloqueio intrínseco para garantir que outras solicitações simultâneas por instâncias de substream não resultem em condições de corrida. A chamada subjacente para a leitura do fluxo encapsulado será bloqueada até que os dados de entrada sejam disponibilizados, o fim do arquivo seja detectado ou uma exceção seja gerada. Se for zero, nenhum bytes será lido e será retornado; caso contrário, há uma tentativa de ler pelo menos um byte. Se nenhum byte estiver disponível porque o subfluxo está no final do arquivo, o valor será retornado; caso contrário, pelo menos um byte será lido e armazenado em . |
synchronized void |
reset()
Reposiciona a posição de subfluxo para o índice em que o método foi chamado pela última vez. A nova posição de redefinição no subfluxo não terá efeito até as leituras subsequentes. |
long |
skip(long n)
Avança a posição atual do subfluxo por . O método não invoca o método subjacente da classe de fluxo encapsulada. O ignorar bytes real será contabilizado durante as operações de leitura de subfluxo subsequentes. |
Detalhes do construtor
SubStream
public SubStream(InputStream source, long startIndex, long streamLength, Object lock)
Cria uma nova instância de substream que particiona o fluxo encapsulado de até . Cada instância de substream que encapsula o mesmo subjacente deve compartilhar a mesma exclusão mútua para evitar condições de corrida de operações simultâneas.
Parameters:
Detalhes do método
close
public void close()
Fecha o substream.
getInputStream
public InputStream getInputStream()
getLength
public long getLength()
mark
public synchronized void mark(int readlimit)
Marca a posição atual no substream. Uma chamada subsequente para o método reposicionará o fluxo para essa posição armazenada.
Parameters:
markSupported
public boolean markSupported()
A classe wrapper de substream só é compatível com fluxos de entrada markáveis e, portanto, sempre retornará true. Esse requisito é imposto no construtor de classe.
Returns:
true
read
public int read()
Lê o próximo byte de dados do fluxo encapsulado. O byte de valor é retornado como um no intervalo para . Se nenhum byte estiver disponível porque o final do substream foi atingido, o valor será retornado. Esse método bloqueia até que os dados de entrada sejam disponíveis, o final do fluxo seja detectado ou uma exceção seja gerada.
Returns:
-1
se o final do substream for atingido.Throws:
read
public synchronized int read(byte[] b)
Lê alguns bytes do fluxo encapsulado e os armazena na matriz de buffers . O número de bytes realmente lidos é retornado como um inteiro. Esse método bloqueia até que os dados de entrada sejam disponíveis, o fim do arquivo seja detectado ou uma exceção seja gerada.
Se o comprimento de for zero, nenhum bytes será lido e retornado; caso contrário, há uma tentativa de ler pelo menos um byte. Se nenhum byte estiver disponível porque o substream está no final do arquivo, o valor será retornado; caso contrário, pelo menos um byte é lido e armazenado em .
A primeira leitura de byte é armazenada no elemento , a próxima no e assim por diante. O número de bytes lidos é, no máximo, igual ao comprimento de . Deixe k ser o número de bytes realmente lidos; esses bytes serão armazenados em elementos por meio de k, deixando os elementos k por meio de não afetados.
O método para classe tem o mesmo efeito que:
Parameters:
Returns:
-1
se não houver mais dados porque o final do fluxo foi atingido.Throws:
b
for null
.
read
public synchronized int read(byte[] b, int off, int len)
Lê até bytes de dados do substream. Armazena em buffer os dados do fluxo encapsulado para minimizar a sobrecarga de ignorar e ler. O wrappedstream só será invocado se o readBuffer não puder atender à solicitação de leitura. Para garantir resultados válidos, o fluxo encapsulado deve ser marcado antes da leitura do subfluxo. Isso nos permite redefinir para a posição relativa do subfluxo no fluxo encapsulado. O número de bytes realmente lidos é retornado como um inteiro. Todas essas operações são feitas de forma síncrona em um bloqueio intrínseco para garantir que outras solicitações simultâneas por instâncias de substream não resultem em condições de corrida.
A chamada subjacente para a leitura do fluxo encapsulado será bloqueada até que os dados de entrada sejam disponibilizados, o fim do arquivo seja detectado ou uma exceção seja gerada.
Se for zero, nenhum bytes será lido e será retornado; caso contrário, há uma tentativa de ler pelo menos um byte. Se nenhum byte estiver disponível porque o subfluxo está no final do arquivo, o valor será retornado; caso contrário, pelo menos um byte será lido e armazenado em .
Parameters:
b
na qual os dados são gravados.
Returns:
-1
se não houver mais dados porque o final do fluxo foi atingido.Throws:
b
for null
.
off
for negativo, len
for negativo ou len
for maior que b.length - off
reset
public synchronized void reset()
Reposiciona a posição de subfluxo para o índice em que o método foi chamado pela última vez.
A nova posição de redefinição no subfluxo não terá efeito até as leituras subsequentes.
skip
public long skip(long n)
Avança a posição atual do subfluxo por . O método não invoca o método subjacente da classe de fluxo encapsulada. O ignorar bytes real será contabilizado durante as operações de leitura de subfluxo subsequentes.
Parameters:
Returns:
Aplica-se a
Azure SDK for Java