Java permite que você leia e escreva dados em arquivos de texto, usando as classes do pacote java.io. Embora menos poderosos que um SGBDR, arquivos texto são extremamente úteis pela sua simplicidade, legibilidade humana e facilidade de uso em muitos cenários.
Um arquivo texto é um arquivo que armazena informações como sequências de caracteres (letras, números, símbolos), que podem ser lidos e compreendidos por humanos usando um editor de texto simples (como Bloco de Notas, Notepad++, VS Code, etc.). Diferente de arquivos binários (como imagens, vídeos ou executáveis de programas), que contêm dados em um formato que só computadores entendem diretamente, arquivos texto são legíveis.
Pontos chave:
Java lida com operações de entrada e saída (I/O) através de streams. Um stream é uma sequência de dados, como um fluxo contínuo de bytes ou caracteres.
OutputStream/Writer): Usados para escrever dados (saída de dados do seu programa para um destino, como um arquivo).InputStream/Reader): Usados para ler dados (entrada de dados de uma fonte, como um arquivo, para o seu programa).Para arquivos texto, geralmente usamos as classes baseadas em caracteres (Reader e Writer), pois elas lidam automaticamente com a codificação de caracteres (UTF-8, ISO-8859-1, etc.).
Classes Essenciais para Arquivos Texto:
FileWriter: Usado para escrever caracteres em um arquivo.FileReader: Usado para ler caracteres de um arquivo.BufferedWriter: Adiciona um "buffer" ao FileWriter, melhorando a performance ao escrever (escreve em blocos maiores).BufferedReader: Adiciona um "buffer" ao FileReader, melhorando a performance ao ler e fornecendo o útil método readLine().PrintWriter: Oferece métodos convenientes para escrever dados formatados (como println()) em um arquivo.File: Representa um arquivo ou diretório no sistema de arquivos. Usado para verificar existência, criar, deletar, etc.Vamos criar um programa que escreve algumas linhas em um arquivo e depois lê o conteúdo desse mesmo arquivo.
Exemplo de Escrita em Arquivo:
import java.io.FileWriter; // Para escrever caracteres em um arquivo
import java.io.BufferedWriter; // Para escrever de forma mais eficiente (com buffer)
import java.io.IOException; // Para tratar exceções de E/S
public class EscreverArquivoTexto {
public static void main(String[] args) {
// Define o nome do arquivo onde os dados serão gravados
String nomeArquivo = "meu_primeiro_arquivo.txt";
// Usamos try-with-resources para garantir que o writer seja fechado automaticamente
try (FileWriter fw = new FileWriter(nomeArquivo); // Cria um FileWriter (se o arquivo não existe, ele cria; se existe, sobrescreve)
BufferedWriter bw = new BufferedWriter(fw)) { // Envolve o FileWriter em um BufferedWriter para melhor performance
bw.write("Olá, este é o primeiro texto no arquivo."); // Escreve uma linha
bw.newLine(); // Adiciona uma nova linha
bw.write("Aqui vai uma segunda linha de dados.");
bw.newLine();
bw.write("E uma terceira!");
System.out.println("Dados gravados com sucesso em " + nomeArquivo);
} catch (IOException e) {
// Captura e trata exceções de E/S (como permissão negada, disco cheio, etc.)
System.err.println("Erro ao escrever no arquivo: " + e.getMessage());
e.printStackTrace();
}
}
}
Ao executar este código, um arquivo chamado meu_primeiro_arquivo.txt será criado (ou sobrescrito) no diretório do seu projeto, contendo as três linhas de texto.