Como escrever em um arquivo de texto em Java?

A escrita de arquivos de texto em Java pode ser feita com FileWriter, BufferedWriter e NIO, garantindo eficiência e controle sobre os dados gravados.

Como escrever em um arquivo de texto em Java?

A escrita em arquivos é uma funcionalidade essencial para armazenar informações de forma persistente. Em Java, existem diferentes abordagens para escrever em arquivos de texto, variando em desempenho e facilidade de uso.

1. Escrevendo com FileWriter

O FileWriter permite gravar caracteres diretamente em um arquivo.

import java.io.*;

public class EscreverArquivo {
    public static void main(String[] args) {
        try (FileWriter writer = new FileWriter("saida.txt")) {
            writer.write("Primeira linha\n");
            writer.write("Segunda linha\n");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Neste código, abrimos o arquivo saida.txt e escrevemos duas linhas de texto.

2. Escrevendo com BufferedWriter para Maior Eficiência

O BufferedWriter melhora o desempenho ao armazenar os dados em buffer antes de gravá-los no arquivo.

import java.io.*;

public class EscreverArquivoBuffered {
    public static void main(String[] args) {
        try (BufferedWriter bw = new BufferedWriter(new FileWriter("saida.txt"))) {
            bw.write("Escrevendo com BufferedWriter\n");
            bw.write("Mais uma linha escrita\n");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3. Escrevendo com Files.write() (Java 8+)

Se preferir uma abordagem moderna, a API java.nio.file facilita a escrita de arquivos.

import java.nio.file.*;
import java.io.IOException;
import java.util.Arrays;

public class EscreverArquivoNIO {
    public static void main(String[] args) {
        try {
            Files.write(Paths.get("saida.txt"), Arrays.asList("Linha 1", "Linha 2"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4. Adicionando Conteúdo a um Arquivo sem Sobrescrever

Para acrescentar texto em um arquivo já existente, usamos o parâmetro true no FileWriter.

FileWriter writer = new FileWriter("saida.txt", true);
BufferedWriter bw = new BufferedWriter(writer);
bw.write("Nova linha adicionada\n");
bw.close();

5. Comparação entre Métodos

Método Vantagens
FileWriter Simples, ideal para arquivos pequenos
BufferedWriter Melhor desempenho para escrita em grandes arquivos
Files.write() Código mais limpo e moderno

Conclusão

A escolha do método depende da necessidade do projeto. Para arquivos pequenos, FileWriter é suficiente. Para maior eficiência, BufferedWriter é ideal. Já para uma abordagem moderna e funcional, Files.write() é recomendado.

A escrita de arquivos em Java é fundamental para diversas aplicações, desde logs de sistemas até armazenamento de dados estruturados. Em aplicações empresariais, a capacidade de gravar arquivos rapidamente impacta diretamente a performance do sistema. Frameworks como Spring Boot utilizam escrita de arquivos para logs, configurações e geração de relatórios. Escolher o método adequado garante eficiência e confiabilidade no processamento de dados.

Algumas aplicações:

  • Geração de logs e relatórios
  • Armazenamento de configurações em arquivos
  • Criação de backups de dados
  • Exportação de informações para compartilhamento

Dicas para quem está começando

  • Use BufferedWriter para melhor desempenho
  • Utilize Files.write() para um código mais moderno
  • Prefira FileWriter(true) para adicionar conteúdo sem sobrescrever
  • Trate exceções (IOException) para evitar erros
  • Feche os recursos com try-with-resources

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como escrever em um arquivo de texto em Java

Compartilhe este tutorial

Continue aprendendo:

Como ler um arquivo de texto em Java

A leitura de arquivos de texto em Java pode ser feita utilizando FileReader, BufferedReader ou a API NIO para manipulação eficiente de dados.

Tutorial anterior

Como manipular arquivos JSON em Java

A manipulação de arquivos JSON em Java pode ser feita com bibliotecas como Jackson e Gson, permitindo conversão fácil entre objetos Java e JSON.

Próximo tutorial