English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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.
A classe OutputStreamWriter fornece implementações para diferentes métodos da classe Writer.
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
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.
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.
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.
Método | Descriçã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 |