Como ler e escrever csv com Java
Neste tutorial vou mostrar como ler e escrever csv com o Java.

Neste breve tutorial vou demonstrar como ler e escrever um arquivo csv com Java.
Neste post irei demonstrar como podemos é feito a leitura e escrita de dados em um arquivo csv usando apenas funções nativas do Java.
Para iniciar vamos importar as dependências que serão utilizadas:
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
Feito isto, vamos implementar começar a implementar o código responsável escrita dos dados no arquivo csv.
Segue abaixo como ficou o código:
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class CSVWriterExample {
public static void main(String[] args) {
String csvFile = "output.csv";
try (PrintWriterwriter=
new PrintWriter(new FileWriter(csvFile))) {
writer.println("Nome,Idade,Cidade");
writer.println("João,25,São Paulo");
writer.println("Maria,30,Rio de Janeiro");
writer.println("Pedro,28,Belo Horizonte");
System.out.println("Arquivo CSV criado com sucesso!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Uma breve explicação do código acima:
- No código acima é definido primeiro o nome do aquivo que será gerado;
- Depois instancio a classe PrintWriter passando uma instância do FileWriter, para criar o arquivo onde será escrito os dados;
- Logo após é realizado a escrita das informações com a função (println) da classe (PrintWriter).
Ao rodar o código acima será gerado um arquivo csv (output.csv
) com as informações passadas:
Nome,Idade,Cidade
João,25,São Paulo
Maria,30,Rio de Janeiro
Pedro,23,Minas Gerais
Segue abaixo um pequeno vídeo onde demonstro o processo e implementação do código usado no tutorial :
Agora vem a parte da leitura do arquivo que foi gerado, segue abaixo o código implementado para leitura do arquivo:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class CSVReaderExample {
public static void main(String[] args) {
String csvFile = "output.csv";
String line;
String csvSeparator = ",";
try (BufferedReader reader = new BufferedReader(new FileReader(csvFile))) {
if ((line = reader.readLine()) != null) {
System.out.println("Cabeçalho: " + line);
}
while ((line = reader.readLine()) != null) {
String[] data = line.split(csvSeparator);
String nome = data[0];
String idade = data[1];
String cidade = data[2];
System.out.println("Nome: " + nome + ", Idade: " + idade + ", Cidade: " + cidade);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Uma breve explicação do código acima:
- No código acima é definido primeiro o nome do aquivo que será lido;
- Depois instancio a classe BufferedReader passando uma instância do FileReader, para ler arquivo csv;
- Logo após é realizo a leitura do arquivo percorrendo cada linha e exibindo as informações no terminal;
Quando executamos o código acima será exibido no terminal as informações abaixos:
Cabeçalho: Nome,Idade,Cidade
Nome: João, Idade: 25, Cidade: São Paulo
Nome: Maria, Idade: 30, Cidade: Rio de Janeiro
Nome: Pedro, Idade: 23, Cidade: Minas Gerais
Deixo aqui um pequeno curto vídeo da implementação do código de leitura de arquivo csv:
Caso queira acompanhar todo o processo de desenvolvimento deixo abaixo o link para o vídeo no Youtube:
Abaixo segue link do Github com o código fonte que utilizei para implementação deste tutorial: