Dominando Java PrintWriter: Recursos, Métodos e Exemplos Práticos
Dominando Java PrintWriter
Neste tutorial, exploramos a classe PrintWriter do Java, seus métodos de impressão e exemplos práticos de código.
A classe PrintWriter, parte de java.io, é projetada para escrever dados de caracteres em arquivos de texto ou outros streams de saída. Ela estende Writer e oferece métodos convenientes de formatação.
Diferente de outros writers, PrintWriter converte automaticamente tipos primitivos (int, float, char, etc.) em texto antes de escrever. Ela também nunca lança IOException; em vez disso, você pode detectar erros com checkError().
Auto-flush é um recurso chave: se habilitado, toda chamada a println() ou printf() força o buffer a fazer flush para o stream subjacente.
Como PrintWriter Funciona
PrintWriter escreve texto formatado em um Writer ou OutputStream subjacente. Seu construtor aceita uma flag autoFlush e, opcionalmente, um Charset para codificação.
Criando um PrintWriter
Primeiro, importe a classe:
import java.io.PrintWriter;
1. De um Writer existente
FileWriter file = new FileWriter("output.txt");
PrintWriter out = new PrintWriter(file, true); // autoFlush = true
2. De um OutputStream
FileOutputStream fos = new FileOutputStream("output.txt");
PrintWriter out = new PrintWriter(fos, true);
3. Diretamente de um nome de arquivo
PrintWriter out = new PrintWriter("output.txt", true);
4. Especificando codificação de caracteres
import java.nio.charset.Charset;
PrintWriter out = new PrintWriter("output.txt", true, Charset.forName("UTF-8"));
Usar um Charset garante que seu texto seja escrito com a codificação desejada.
Métodos Principais
print() e println()
Estes métodos escrevem texto bruto ou terminado em linha:
print(obj)– escreve a representação em string deobjsem nova linha.println(obj)– escreve a string e anexa o separador de linha do sistema.
printf()
A família printf suporta a sintaxe Formatter do Java. Exemplo:
out.printf("Eu tenho %d anos.", 25);
Outros métodos úteis
| Método | Descrição |
|---|---|
close() | Fecha o stream e libera recursos. |
checkError() | Retorna true se ocorreu erro de escrita. |
append(CharSequence) | Anexa a sequência dada ao writer. |
Exemplo Prático
Abaixo está um programa completo, executável, que escreve texto formatado em output.txt usando printf():
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
public class PrintWriterDemo {
public static void main(String[] args) {
try (PrintWriter out = new PrintWriter(new FileWriter("output.txt"), true)) {
int idade = 25;
out.printf("Eu tenho %d anos.\n", idade);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Executar este programa cria output.txt com a linha:
Eu tenho 25 anos.
Leitura Adicional
Para a especificação oficial, veja a API Java PrintWriter e a documentação Charset.
Java
- Entendendo a Palavra-chave final em Java: Variáveis, Métodos e Classes
- Operador instanceof em Java: Guia Completo
- Dominando Herança em Java: Conceitos, Tipos e Exemplos Práticos
- Entendendo Classes Aninhadas Estáticas em Java: Uso, Diferenças e Exemplos
- Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
- Padrão Singleton em Java Explicado: Como Implementar e Usar com Segurança
- Dominando Reflection em Java: Inspecionando Classes, Métodos e Campos em Tempo de Execução
- Dominando Java ObjectOutputStream: Serialização, Métodos e Exemplos Práticos
- Dominando Java Generics – Construindo Código Reutilizável e Type-Safe
- Dominando Operações de Arquivo em Java com java.io – Criação, Leitura, Escrita e Exclusão