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

Tutoriais Básicos de Java

controle de fluxo Java

vetor Java

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Tratamento de Exceção Java

Lista (List) Java

Fila (Queue) Java

conjunto Map Java

Java Conjuntos Set

Java Entrada Saída (I/)

Java Reader/Writer

Temas Java outros

Classe Java OutputStreamWriter

Neste tutorial, vamos aprender o Java OutputStreamWriter e seus métodos com exemplos.

A classe OutputStreamWriter do pacote java.io pode ser usada para converter dados em formato de caracteres para formato de bytes.

Ele herda a classe abstrata Writer.

A classe OutputStreamWriter pode ser usada com outros fluxos de saída. Também é conhecida como ponte entre fluxo de bytes e fluxo de caracteres. Isso porque OutputStreamWriter converte seus caracteres em bytes.

Por exemplo, alguns caracteres precisam2bytes são armazenados na memória. Para escrever esses dados, podemos usar o escritor de fluxo de saída, que converte caracteres em bytes correspondentes e armazena os bytes juntos.

criar um OutputStreamWriter

Para criar OutputStreamWriter, devemos primeiro importar o pacote java.io.OutputStreamWriter. Após a importação do pacote, podemos criar o escritor de fluxo de saída aqui.

//Cria um OutputStream
FileOutputStream file = new FileOutputStream(String path);
//criar um OutputStreamWriter
OutputStreamWriter output = new OutputStreamWriter(file);

Nos exemplos acima, criamos um OutputStreamWriter chamado output e um arquivo FileOutputStream.

Aqui, usamos a codificação de caracteres padrão para escrever caracteres no fluxo de saída.

Mas, podemos especificar o tipo de codificação de caracteres a ser usado para escrever dadosUTF8ouUTF16)

//Cria um OutputStreamWriter, especificando a codificação de caracteres
OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);

Aqui, usamos a classe Charset para especificar o tipo de codificação de caracteres.

Métodos do OutputStreamWriter

A classe OutputStreamWriter fornece implementações para diferentes métodos da classe Writer.

Método write()

  • write() -Escreve um caractere no escritor

  • write(char[] array) - Escreve os caracteres do array especificado no escritor

  • write(String data) - Escreve a string especificada no escritor

Exemplo: OutputStreamWriter escreve dados em um arquivo

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
public class Main {}}
  public static void main(String args[]) {
    String data = "This is a line of text inside the file.";
    try {
      // criar FileOutputStream
      FileOutputStream file = new FileOutputStream("output.txt");
      //criar um OutputStreamWriter
      OutputStreamWriter output = new OutputStreamWriter(file);
      //escrever uma string no arquivo
      output.write(data);
      //fechar writer
      output.close();
    }
    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

No exemplo acima, usamos o fluxo de saída de arquivo para criar um leitor de fluxo de saída. O leitor de fluxo de saída éoutput.txtligação de arquivo

FileOutputStream file = new FileOutputStream("output.txt");
OutputStreamWriter output = new OutputStreamWriter(file);

Para escrever dados no arquivo, usamos o método write().

Aqui, quando executamos o programa,output.txtO arquivo será preenchido com o seguinte conteúdo.

Esta é uma linha de texto dentro do arquivo.

método getEncoding()

O método getEncoding() pode ser usado para obter o tipo de codificação usado para escrever dados no fluxo de saída. Por exemplo,

import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.io.FileOutputStream;
class Main {
  public static void main(String[] args) {
    try {
      // criar um fluxo de saída
      FileOutputStream file = new FileOutputStream("output.txt");
      // criar um leitor de fluxo de saída com codificação padrão
      OutputStreamWriter output1 = new OutputStreamWriter(file);
      // criar um leitor de fluxo de saída com codificação especificada
      OutputStreamWriter output2 = new OutputStreamWriter(file, Charset.forName("UTF8");
      // retorna o código de caracteres da saída
      System.out.println("output1do código de caracteres: " + output1.getEncoding());
      System.out.println("output2do código de caracteres: " + output2.getEncoding());
      // fechar leitor
      output1.close();
      output2.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Resultados de saída

output1de codificação de caracteres: Cp1252
output2de codificação de caracteres: UTF8

No exemplo acima, criamos2um escrevedor de fluxo de saída, nomeado output1E output2.

  • output1Não foi especificada a codificação de caracteres. Portanto, o método getEncoding() retorna a codificação de caracteres padrão.

  • output2Especificar a codificação de caracteresUTF8. Portanto, o método getEncoding() retorna a codificação de caracteres especificada.

Atenção: Já usamos o método Charset.forName() para especificar o tipo de codificação de caracteres.

Método close()

Para fechar o escrevedor de fluxo de saída, podemos usar o método close(). Após a chamada do método close(), não podemos usar o writer para escrever dados.

Outros métodos OutputStreamWriter

MétodoDescrição
flush()Forçar a gravação de todos os dados existentes no escrevedor em seu destino correspondente
append()Inserir o caractere especificado no escrevedor atual