Classe Java ByteArrayOutputStream
Classe Java ByteArrayOutputStream
Neste tutorial, aprenderemos sobre Java ByteArrayOutputStream e seus métodos com a ajuda de exemplos.
O ByteArrayOutputStream
classe do java.io
pacote pode ser usado para escrever uma matriz de dados de saída (em bytes).
Ele estende o OutputStream
classe abstrata.
Observação :Em ByteArrayOutputStream
mantém uma matriz interna de bytes para armazenar os dados.
Criar um ByteArrayOutputStream
Para criar um fluxo de saída de array de bytes, devemos importar o
java.io.ByteArrayOutputStream
pacote primeiro. Depois de importar o pacote, veja como podemos criar um fluxo de saída.
// Creates a ByteArrayOutputStream with default size
ByteArrayOutputStream out = new ByteArrayOutputStream();
Aqui, criamos um fluxo de saída que gravará dados em uma matriz de bytes com tamanho padrão de 32 bytes. No entanto, podemos alterar o tamanho padrão do array.
// Creating a ByteArrayOutputStream with specified size
ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
Aqui, o tamanho especifica o comprimento da matriz.
Métodos de ByteArrayOutputStream
O
ByteArrayOutputStream
classe fornece a implementação dos diferentes métodos presentes no OutputStream
classe. Método write()
write(int byte)
- grava o byte especificado no fluxo de saídawrite(byte[] array)
- grava os bytes da matriz especificada no fluxo de saídawrite(byte[] arr, int start, int length)
- escreve o número de bytes igual a comprimento para o fluxo de saída de um array começando na posição startwriteTo(ByteArrayOutputStream out1)
- grava todos os dados do fluxo de saída atual no fluxo de saída especificado
Exemplo:ByteArrayOutputStream para gravar dados
import java.io.ByteArrayOutputStream;
class Main {
public static void main(String[] args) {
String data = "This is a line of text inside the string.";
try {
// Creates an output stream
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] array = data.getBytes();
// Writes data to the output stream
out.write(array);
// Retrieves data from the output stream in string format
String streamData = out.toString();
System.out.println("Output stream: " + streamData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Saída
Output stream: This is a line of text inside the string.
No exemplo acima, criamos um fluxo de saída de array de bytes chamado output .
ByteArrayOutputStream output = new ByteArrayOutputStream();
Para gravar os dados no fluxo de saída, usamos o
write()
método. Observação :O
getBytes()
O método usado no programa converte uma string em uma matriz de bytes. Acessar dados de ByteArrayOutputStream
toByteArray()
- retorna o array presente dentro do fluxo de saídatoString()
- retorna todos os dados do fluxo de saída em forma de string
Por exemplo,
import java.io.ByteArrayOutputStream;
class Main {
public static void main(String[] args) {
String data = "This is data.";
try {
// Creates an output stream
ByteArrayOutputStream out = new ByteArrayOutputStream();
// Writes data to the output stream
out.write(data.getBytes());
// Returns an array of bytes
byte[] byteData = out.toByteArray();
System.out.print("Data using toByteArray(): ");
for(int i=0; i<byteData.length; i++) {
System.out.print((char)byteData[i]);
}
// Returns a string
String stringData = out.toString();
System.out.println("\nData using toString(): " + stringData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Saída
Data using toByteArray(): This is data. Data using toString(): This is data.
No exemplo acima, criamos um array de bytes para armazenar os dados retornados pelo
toByteArray()
método. Em seguida, usamos o loop for para acessar cada byte do array. Aqui, cada byte é convertido no caractere correspondente usando typecasting.
método close()
Para fechar o fluxo de saída, podemos usar o
close()
método. No entanto, o
close()
método não tem efeito em ByteArrayOutputStream
classe. Podemos usar os métodos desta classe mesmo após o close()
método é chamado. Outros métodos de ByteArrayOutputStream
Métodos | Descrições |
---|---|
size() | retorna o tamanho da matriz no fluxo de saída |
flush() | limpa o fluxo de saída |
Para saber mais, visite Java ByteArrayOutputStream (documentação oficial do Java).
Java