English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, vamos aprender sobre Java ByteArrayOutputStream e seus métodos com exemplos.
A classe ByteArrayOutputStream do pacote java.io pode ser usada para escrever dados de array de saída (em bytes).
Ele herda a classe abstrata OutputStream.
Atenção:Mantém um array interno de bytes para armazenar dados no ByteArrayOutputStream
Para criar um fluxo de saída de array de bytes,我们必须 primeiro importar o pacote java.io.ByteArrayOutputStream. Após a importação do pacote, podemos criar o fluxo de saída.
//Cria um ByteArrayOutputStream de tamanho padrão ByteArrayOutputStream out = new ByteArrayOutputStream();
Aqui, criamos um fluxo de saída que escreve dados com tamanho padrão de32Em um array de bytes de bytes. Mas, podemos alterar o tamanho padrão do array.
//Cria um ByteArrayOutputStream com tamanho especificado ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
Aqui, size especifica o comprimento do array
A classe ByteArrayOutputStream fornece implementações de diferentes métodos existentes no OutputStream
write(int byte) - Escreve o byte especificado para o fluxo de saída
write(byte[] array) - Escreve os bytes do array especificado para o fluxo de saída
write(byte[] arr, int start, int length)- Começa a escrever, a partir da posição start, um número de bytes igual a length no fluxo de saída do array
writeTo(ByteArrayOutputStream out1) -Escreve todos os dados da corrente de saída especificada para a corrente de saída especificada
import java.io.ByteArrayOutputStream; class Main { public static void main(String[] args) { String data = "This is a line of text inside the string."; try { //Cria um fluxo de saída ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] array = data.getBytes(); //Escreve dados no fluxo de saída out.write(array); //Recupera dados do fluxo de saída no formato de string String streamData = out.toString(); System.out.println("Fluxo de saída: "); + streamData); out.close(); } catch(Exception e) { e.getStackTrace(); } } }
Resultados de saída
Fluxo de saída: This is a line of text inside the string.
No exemplo acima, criamos um fluxo de saída de bytes chamado output.
ByteArrayOutputStream output = new ByteArrayOutputStream();
Para escrever dados no fluxo de saída, usamos o método write().
Atenção:O método getBytes() usado no programa converte uma string em um array de bytes.
toByteArray() - Retorna o array existente no fluxo de saída
toString() - Retorna todos os dados do fluxo de saída na forma de string
Por exemplo
import java.io.ByteArrayOutputStream; class Main { public static void main(String[] args) { String data = "This is data."; try { //Cria um fluxo de saída ByteArrayOutputStream out = new ByteArrayOutputStream(); //Escreve dados no fluxo de saída out.write(data.getBytes()); //Retorna um array de bytes byte[] byteData = out.toByteArray(); System.out.print("Usando toByteArray() de dados: "); for(int i=0; i<byteData.length; i++) { System.out.print((char)byteData[i]); } //Retorna uma string String stringData = out.toString(); System.out.println("\nUsando toString() de dados: "); + stringData); out.close(); } catch(Exception e) { e.getStackTrace(); } } }
Resultados de saída
Usando toByteArray(): This is data. Usando toString(): This is data.
No exemplo acima, criamos um array de bytes para armazenar os dados retornados pelo método toByteArray().
Em seguida, use um loop for para acessar cada byte do array. Aqui, use a conversão de tipo para converter cada byte para o caractere correspondente.
Para fechar o fluxo de saída, podemos usar o método close().
No entanto, o método close() é inválido na classe ByteArrayOutputStream. Mesmo que o método close() seja chamado, podemos usar os métodos deste objeto.
Método | Descrição do conteúdo |
---|---|
size() | Retornar o tamanho do array no fluxo de saída |
flush() | Limpar fluxo de saída |