English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Java

Java controle de fluxo

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Tratamento de Exceção Java

Java Lista (List)

Java Fila (Queue)

Java Mapa (Map)

Java Conjunto (Set)

Java Entrada e Saída (I/O)/O)

Java Reader/Writer

Outros tópicos Java

Classe Java ByteArrayOutputStream

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

Cria um 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

Métodos de ByteArrayOutputStream

A classe ByteArrayOutputStream fornece implementações de diferentes métodos existentes no OutputStream

Método write()

  • 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

Exemplo: ByteArrayOutputStream escreve 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 {
    //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.

Acessa dados do ByteArrayOutputStream

  • 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.

Método close()

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.

Outros métodos de ByteArrayOutputStream

MétodoDescrição do conteúdo
size()Retornar o tamanho do array no fluxo de saída
flush()Limpar fluxo de saída