Java - ByteArrayOutputStream
O fluxo da classe ByteArrayOutputStream cria um buffer na memória e todos os dados enviados para o fluxo são armazenados no buffer.
A seguir está a lista dos construtores a serem fornecidos pela classe ByteArrayOutputStream.
Sr. Não. | Construtor e descrição |
---|---|
1 | ByteArrayOutputStream() Este construtor cria um ByteArrayOutputStream com buffer de 32 bytes. |
2 | ByteArrayOutputStream(int a) Este construtor cria um ByteArrayOutputStream com buffer do tamanho fornecido. |
Depois de ter o objeto ByteArrayOutputStream em mãos, há uma lista de métodos auxiliares que podem ser usados para escrever o fluxo ou para fazer outras operações no fluxo.
Sr. Não. | Método e Descrição |
---|---|
1 | public void reset() Este método redefine o número de bytes válidos do fluxo de saída da matriz de bytes para zero, de forma que toda a saída acumulada no fluxo seja descartada. |
2 | public byte[] toByteArray() Este método cria uma nova matriz de bytes alocada. Seu tamanho seria o tamanho atual do fluxo de saída e o conteúdo do buffer será copiado para ele. Retorna o conteúdo atual do fluxo de saída como uma matriz de bytes. |
3 | public String toString() Converte o conteúdo do buffer em uma string. A tradução será feita de acordo com a codificação de caracteres padrão. Retorna a String traduzida do conteúdo do buffer. |
4 | public void write(int w) Grava a matriz especificada no fluxo de saída. |
5 | public void write(byte []b, int of, int len) Grava o número de len de bytes começando do deslocamento até o fluxo. |
6 | public void writeTo(OutputStream outSt) Grava todo o conteúdo deste Stream no argumento stream especificado. |
Exemplo
A seguir está um exemplo para demonstrar ByteArrayOutputStream e ByteArrayInputStream.
import java.io.*;
public class ByteStreamTest {
public static void main(String args[])throws IOException {
ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12);
while( bOutput.size()!= 10 ) {
// Gets the inputs from the user
bOutput.write("hello".getBytes());
}
byte b [] = bOutput.toByteArray();
System.out.println("Print the content");
for(int x = 0; x < b.length; x++) {
// printing the characters
System.out.print((char)b[x] + " ");
}
System.out.println(" ");
int c;
ByteArrayInputStream bInput = new ByteArrayInputStream(b);
System.out.println("Converting characters to Upper case " );
for(int y = 0 ; y < 1; y++ ) {
while(( c = bInput.read())!= -1) {
System.out.println(Character.toUpperCase((char)c));
}
bInput.reset();
}
}
}
Aqui está o exemplo de execução do programa acima -
Resultado
Print the content
h e l l o h e l l o
Converting characters to Upper case
H
E
L
L
O
H
E
L
L
O