Java OutputStreamWriter (com exemplos)

Neste tutorial, aprenderemos sobre Java OutputStreamWriter e seus métodos com a ajuda de exemplos.

A OutputStreamWriterclasse do java.iopacote pode ser usada para converter dados na forma de caracteres em dados na forma de bytes.

Ele estende a classe abstrata Writer.

A OutputStreamWriterclasse trabalha com outros fluxos de saída. Também é conhecido como uma ponte entre fluxos de bytes e fluxos de caracteres. Isso ocorre porque o OutputStreamWriterconverte seus caracteres em bytes.

Por exemplo, alguns caracteres requerem 2 bytes para serem armazenados no armazenamento. Para escrever esses dados, podemos usar o gravador de fluxo de saída que converte o caractere em bytes correspondentes e armazena os bytes juntos.

Crie um OutputStreamWriter

Para criar um OutputStreamWriter, devemos java.io.OutputStreamWriterprimeiro importar o pacote. Depois de importar o pacote, aqui está como podemos criar o gravador de fluxo de saída.

 // Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); 

No exemplo acima, criamos uma OutputStreamWritersaída nomeada junto com o FileOutputStreamarquivo nomeado.

Aqui, estamos usando a codificação de caracteres padrão para gravar caracteres no fluxo de saída.

No entanto, podemos especificar o tipo de codificação de caracteres ( UTF8 ou UTF16 ) a ser usado para gravar dados.

 // Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs); 

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

Métodos de OutputStreamWriter

A OutputStreamWriterclasse fornece implementações para diferentes métodos presentes na Writerclasse.

Método write ()

  • write() - escreve um único personagem para o escritor
  • write(char() array) - grava os caracteres da matriz especificada para o escritor
  • write(String data) - escreve a string especificada para o escritor

Exemplo: OutputStreamWriter para gravar 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 ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); // Writes string to the file output.write(data); // Closes the writer output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

No exemplo acima, criamos um leitor de fluxo de saída usando o fluxo de saída do arquivo. O leitor de fluxo de saída está vinculado ao arquivo output.txt .

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

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

Aqui, quando executamos o programa, o arquivo output.txt é preenchido com o seguinte conteúdo.

 This is a line of text inside the file. 

Método getEncoding ()

O getEncoding()método pode ser usado para obter o tipo de codificação usado para gravar 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 ( // Creates an output stream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an output stream reader with default encoding OutputStreamWriter output1 = new OutputStreamWriter(file); // Creates an output stream reader specifying the encoding OutputStreamWriter output2 = new OutputStreamWriter(file, Charset.forName("UTF8")); // Returns the character encoding of the output stream System.out.println("Character encoding of output1: " + output1.getEncoding()); System.out.println("Character encoding of output2: " + output2.getEncoding()); // Closes the reader output1.close(); output2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Resultado

 A codificação de caracteres de output1: Cp1252 A codificação de caracteres de output2: UTF8 

No exemplo acima, criamos 2 gravadores de fluxo de saída chamados output1 e output2.

  • output1 não especifica a codificação de caracteres. Portanto, o getEncoding()método retorna a codificação de caracteres padrão.
  • output2 especifica a codificação de caracteres, UTF8 . Portanto, o getEncoding()método retorna a codificação de caracteres especificada.

Nota : Usamos o Charset.forName()método para especificar o tipo de codificação de caracteres. Para saber mais, visite Java Charset (documentação oficial do Java).

Método close ()

Para fechar o gravador de fluxo de saída, podemos usar o close()método. Depois que o close()método é chamado, não podemos usar o gravador para gravar os dados.

Outros métodos de OutputStreamWriter

Método Descrição
flush() força a gravar todos os dados presentes no gravador para o destino correspondente
append() insere o caractere especificado para o escritor atual

Para saber mais, visite Java OutputStreamWriter (documentação oficial do Java).

Artigos interessantes...