Dominando a Classe PrintStream do Java: Print, Println e Printf Explicados
Dominando a Classe PrintStream do Java
Este tutorial aprofunda a classe PrintStream do Java, cobrindo sua criação, métodos principais e exemplos práticos.
A classe PrintStream, parte do pacote java.io, estende OutputStream e é projetada para saída de texto legível por humanos em vez de bytes brutos.
Como PrintStream Funciona
Diferente de outros streams, PrintStream converte valores primitivos (int, char, etc.) em texto formatado antes de escrevê-los no destino. Ela também nunca lança IOException; em vez disso, erros são reportados via checkError().
Auto-flush é um recurso chave: o stream faz flush automaticamente quando:
- um caractere de nova linha (
\n) é impresso, - o método
println()é chamado, ou - um array de bytes é escrito.
Criando um PrintStream
Primeiro, importe a classe:
import java.io.PrintStream;
1. De um OutputStream existente
// Exemplo: envolve um FileOutputStream
FileOutputStream fos = new FileOutputStream("log.txt");
PrintStream ps = new PrintStream(fos, true); // true = autoFlush
Isso escreve texto formatado em log.txt com auto-flush opcional.
2. Diretamente de um nome de arquivo
PrintStream ps = new PrintStream("log.txt", true);
O construtor aceita um booleano para auto-flush. Por padrão, o stream usa a codificação de caracteres da plataforma.
3. Especificando um charset
PrintStream ps = new PrintStream("log.txt", true, StandardCharsets.UTF_8);
Usar Charset permite escolher UTF-8, UTF-16 ou qualquer codificação suportada.
Nota: Para mais detalhes sobre character sets, veja a API Java Charset.
Métodos Principais do PrintStream
print() e println()
print(Object obj)– imprime a representação em string do objeto.println(Object obj)– anexa um terminador de linha específico da plataforma.
Exemplo: Usando System.out
public class Main {
public static void main(String[] args) {
System.out.print("Hello World.");
}
}
Aqui, System.out é um PrintStream pré-configurado, então seu método print() está imediatamente disponível.
Exemplo: Escrevendo em um Arquivo
import java.io.PrintStream;
public class Main {
public static void main(String[] args) {
try {
PrintStream ps = new PrintStream("output.txt");
ps.print("Este é um texto dentro do arquivo.");
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
O resultado em output.txt contém:
Este é um texto dentro do arquivo.
printf()
Imprime texto formatado usando especificadores de formato:
System.out.printf("Eu tenho %d anos", 25);
Aqui, %d é substituído pelo valor inteiro 25.
Exemplo: Usando printf() com Arquivo
import java.io.PrintStream;
public class Main {
public static void main(String[] args) {
try {
PrintStream ps = new PrintStream("output.txt");
int idade = 25;
ps.printf("Eu tenho %d anos.", idade);
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Após execução, output.txt contém:
Eu tenho 25 anos.
Métodos Adicionais do PrintStream
| Método | Descrição |
|---|---|
close() |
Fecha o stream e libera recursos do sistema. |
checkError() |
Retorna true se o stream encontrou um erro. |
append() |
Anexa a sequência de caracteres especificada ao stream. |
Para detalhes completos, consulte a documentação oficial do Java PrintStream.
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