Classe Java OutputStreamWriter
Classe Java OutputStreamWriter
Neste tutorial, aprenderemos sobre o Java OutputStreamWriter e seus métodos com a ajuda de exemplos.
O OutputStreamWriter
classe do java.io
O pacote pode ser usado para converter dados em formato de caractere em dados em formato de bytes.
Ele estende a classe abstrata Writer
.
O OutputStreamWriter
classe funciona 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.
Criar um OutputStreamWriter
Para criar um
OutputStreamWriter
, devemos importar o java.io.OutputStreamWriter
pacote primeiro. Uma vez que importamos o pacote, aqui é 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 um
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 o
Charset
class para especificar o tipo de codificação de caracteres. Métodos de OutputStreamWriter
O
OutputStreamWriter
classe fornece implementações para diferentes métodos presentes no Writer
classe. Método write()
write()
- escreve um único caractere para o escritorwrite(char[] array)
- escreve os caracteres do array especificado 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 output.txt Arquivo.
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 output.txt arquivo é preenchido com o seguinte conteúdo.
This is a line of text inside the file.
Método getEncoding()
O
getEncoding()
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();
}
}
}
Saída
The character encoding of output1: Cp1252 The character encoding of output2: UTF8
No exemplo acima, criamos 2 gravadores de fluxo de saída chamados output1 e saída2 .
- saída1 não especifica a codificação de caracteres. Daí o
getEncoding()
retorna a codificação de caracteres padrão. - saída2 especifica a codificação de caracteres, UTF8 . Daí o
getEncoding()
retorna a codificação de caracteres especificada.
Observação :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. Uma vez que o close()
for chamado, não podemos usar o gravador para gravar os dados. Outros métodos de OutputStreamWriter
Método | Descrição |
---|---|
flush() | força a gravação de todos os dados presentes no gravador no destino correspondente |
append() | insere o caractere especificado para o escritor atual |
Para saber mais, visite Java OutputStreamWriter (documentação oficial do Java).
Java