Java BufferedWriter: I/O de Caracteres Eficiente Explicado
Java BufferedWriter
Este guia explica a classe BufferedWriter do Java, seu buffer interno, métodos principais e exemplos práticos de código.
A classe BufferedWriter no pacote java.io envolve outro Writer para fornecer saída de caracteres eficiente. Ao bufferizar dados na memória, reduz operações caras de I/O de disco.
Como BufferedWriter Funciona
A classe mantém um buffer interno de 8.192 caracteres (tamanho padrão). Quando você escreve dados, caracteres são primeiro armazenados neste buffer. Uma vez que o buffer enche ou o writer é fechado, o conteúdo é descarregado para o stream subjacente.
Esta estratégia minimiza o número de escritas em disco, tornando a saída de caracteres notavelmente mais rápida.
Criando um BufferedWriter
Importe a classe e crie um BufferedWriter envolvendo um FileWriter (ou qualquer outro Writer):
FileWriter file = new FileWriter("output.txt");
BufferedWriter buffer = new BufferedWriter(file);
O buffer padrão é 8.192 caracteres, mas você pode especificar um tamanho personalizado:
BufferedWriter buffer = new BufferedWriter(file, 16384); // buffer 16KB
Métodos do BufferedWriter
write()
write(int c)– escreve um único caractere.write(char[] cbuf)– escreve um array de caracteres.write(String str)– escreve uma string.
Exemplo: Escrevendo em um Arquivo
import java.io.FileWriter;
import java.io.BufferedWriter;
public class Main {
public static void main(String[] args) {
String dados = "Estes são os dados no arquivo de saída";
try {
FileWriter file = new FileWriter("output.txt");
BufferedWriter out = new BufferedWriter(file);
out.write(dados);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
O resultado em output.txt contém a string especificada.
flush()
Força os dados em buffer a serem escritos no stream subjacente imediatamente.
out.flush(); // escreve quaisquer caracteres em buffer no arquivo
close()
Fecha o writer e libera recursos do sistema. Após chamar close(), o writer não pode ser usado novamente.
Outros Métodos Úteis
| Método | Descrição |
|---|---|
newLine() | Insere o separador de linha específico da plataforma. |
append(char c) | Anexa um único caractere. |
append(CharSequence csq) | Anexa uma sequência de caracteres. |
Para a API completa, consulte a documentação oficial Java BufferedWriter.
Java
- Entendendo a Palavra-chave final em Java: Variáveis, Métodos e Classes
- Operador instanceof em Java: Guia Completo
- 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 BufferedReader: Manipulação Eficiente de Streams de Caracteres
- 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