Como manipular arquivos CSV em Java?

A manipulação de arquivos CSV em Java pode ser feita com FileReader, BufferedReader e bibliotecas especializadas como OpenCSV para garantir eficiência na leitura e escrita.

Como manipular arquivos CSV em Java?

O CSV (Comma-Separated Values) é um formato popular para armazenar e transferir dados estruturados. Em Java, podemos manipular arquivos CSV usando FileReader, BufferedReader ou bibliotecas como OpenCSV.

1. Lendo Arquivos CSV com BufferedReader

Podemos ler um arquivo CSV linha por linha e dividir os valores usando split(",").

import java.io.*;

public class LerCSV {
    public static void main(String[] args) {
        String arquivo = "dados.csv";
        try (BufferedReader br = new BufferedReader(new FileReader(arquivo))) {
            String linha;
            while ((linha = br.readLine()) != null) {
                String[] dados = linha.split(",");
                System.out.println("Nome: " + dados[0] + ", Idade: " + dados[1]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Exemplo de dados.csv:

João,30
Maria,25
Carlos,40

Saída esperada:

Nome: João, Idade: 30
Nome: Maria, Idade: 25
Nome: Carlos, Idade: 40

2. Escrevendo um Arquivo CSV com BufferedWriter

Para criar um arquivo CSV e adicionar conteúdo:

import java.io.*;

public class EscreverCSV {
    public static void main(String[] args) {
        String arquivo = "saida.csv";
        try (BufferedWriter bw = new BufferedWriter(new FileWriter(arquivo))) {
            bw.write("Nome,Idade\n");
            bw.write("João,30\n");
            bw.write("Maria,25\n");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3. Usando a Biblioteca OpenCSV para Manipulação Avançada

A OpenCSV facilita a leitura e escrita de CSV com recursos adicionais.

3.1. Adicionando a Dependência (Maven)

<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.5.2</version>
</dependency>

3.2. Lendo um Arquivo CSV com OpenCSV

import com.opencsv.CSVReader;
import java.io.*;
import java.util.List;

public class LerCSVOpenCSV {
    public static void main(String[] args) {
        try (CSVReader reader = new CSVReader(new FileReader("dados.csv"))) {
            List<String[]> linhas = reader.readAll();
            for (String[] linha : linhas) {
                System.out.println("Nome: " + linha[0] + ", Idade: " + linha[1]);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3.3. Escrevendo um Arquivo CSV com OpenCSV

import com.opencsv.CSVWriter;
import java.io.*;

public class EscreverCSVOpenCSV {
    public static void main(String[] args) {
        try (CSVWriter writer = new CSVWriter(new FileWriter("saida.csv"))) {
            String[] cabecalho = {"Nome", "Idade"};
            String[] pessoa1 = {"João", "30"};
            String[] pessoa2 = {"Maria", "25"};
            writer.writeNext(cabecalho);
            writer.writeNext(pessoa1);
            writer.writeNext(pessoa2);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4. Comparação entre Métodos

Método Vantagens
BufferedReader Simples e rápido para leitura básica
BufferedWriter Fácil para escrita manual de CSV
OpenCSV Melhor para manipulação avançada de CSV

Conclusão

A manipulação de arquivos CSV em Java pode ser feita de várias formas. Para tarefas simples, BufferedReader e BufferedWriter são eficientes. Para manipulação mais avançada, OpenCSV é altamente recomendada.

Os arquivos CSV são amplamente usados para armazenar e trocar dados tabulares em aplicações empresariais. Muitos sistemas exportam e importam dados em CSV para integração com planilhas e bancos de dados. Aprender a manipular arquivos CSV em Java permite automatizar processos e lidar eficientemente com grandes volumes de dados.

Algumas aplicações:

  • Exportação de relatórios e tabelas
  • Integração com planilhas como Excel
  • Importação e exportação de dados em sistemas
  • Armazenamento simples de grandes volumes de dados

Dicas para quem está começando

  • Use BufferedReader para leitura básica de CSV
  • Prefira OpenCSV para manipulação avançada
  • Evite modificar arquivos CSV sem backup
  • Trate exceções ao lidar com arquivos para evitar erros
  • Teste a compatibilidade do CSV gerado com outros sistemas

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como manipular arquivos CSV em Java

Compartilhe este tutorial

Continue aprendendo:

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.

Tutorial anterior

Como listar os arquivos de um diretório em Java

A listagem de arquivos em um diretório em Java pode ser feita com File, NIO e Stream API, permitindo uma navegação eficiente pelos diretórios.

Próximo tutorial