Neste tutorial, aprenderemos sobre Java OutputStreamWriter e seus métodos com a ajuda de exemplos.
A OutputStreamWriter
classe do java.io
pacote pode ser usada para converter dados na forma de caracteres em dados na forma de bytes.
Ele estende a classe abstrata Writer
.
A OutputStreamWriter
classe 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 OutputStreamWriter
converte 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.OutputStreamWriter
primeiro 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 OutputStreamWriter
saída nomeada junto com o FileOutputStream
arquivo 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 Charset
classe para especificar o tipo de codificação de caracteres.
Métodos de OutputStreamWriter
A OutputStreamWriter
classe fornece implementações para diferentes métodos presentes na Writer
classe.
Método write ()
write()
- escreve um único personagem para o escritorwrite(char() array)
- grava os caracteres da matriz especificada para o escritorwrite(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).