logo

Como ler arquivo CSV em Java

O CSV apoia Valores Separados Por Virgula . É um formato de arquivo simples usado para armazenar dados tabulares em formato de texto simples, como uma planilha ou banco de dados. Os arquivos no CSV O formato pode ser importado e exportado de programas (Microsoft Office e Excel) que armazenam dados em tabelas. O arquivo CSV usou um delimitador para identificar e separar diferentes tokens de dados em um arquivo. O formato de arquivo CSV é usado quando movemos dados tabulares entre programas que operam nativamente em formatos incompatíveis. Existem as seguintes maneiras de ler arquivos CSV em Java. O separador padrão de um arquivo CSV é um vírgula (,) .

Existem as seguintes maneiras de imprimir um array em Java:

  • Java Scanner aula
  • Java String.split() método
  • Usando OpenCSV API

Como criar arquivo CSV

Existem duas maneiras de criar um arquivo CSV:

  • Usando Microsoft Excel
  • Usando Bloco de anotações

Usando o Microsoft Excel

Passo 1: Abra o Microsoft Excel.

Passo 2: Escreva os seguintes dados no arquivo:

Como ler arquivo CSV em Java

Etapa 3: Agora, salve o arquivo. Forneça o nome do arquivo CSVDemo e selecione CSV (delimitado por vírgula) na lista Salvar como tipo cardápio. Agora, clique no botão Salvar.

Como ler arquivo CSV em Java

Usando o bloco de notas

Passo 1: Abrir bloco de anotações .

Passo 2: Escreva alguns dados em um arquivo separados por vírgula (,) . Por exemplo:

Vivek, Singh, 23, 9999999, Chandigarh

Etapa 3: Salve o arquivo com .csv extensão.

ls comanda linux

Criamos o seguinte arquivo.

Como ler arquivo CSV em Java

Classe Java Scanner

Java Scanner classe fornece vários métodos pelos quais podemos ler o arquivo CSV. A classe Scanner fornece um construtor que produz valores verificados do arquivo especificado. Ele divide os dados no formato de token. Ele usa um padrão delimitador que por padrão corresponde ao espaço em branco. Os tokens resultantes são então convertidos em valores de diferentes tipos usando os métodos next().

Exemplo

 import java.io.*; import java.util.Scanner; public class ReadCSVExample1 { public static void main(String[] args) throws Exception { //parsing a CSV file into Scanner class constructor Scanner sc = new Scanner(new File('F:\CSVDemo.csv')); sc.useDelimiter(','); //sets the delimiter pattern while (sc.hasNext()) //returns a boolean value { System.out.print(sc.next()); //find and returns the next complete token from this scanner } sc.close(); //closes the scanner } } 

Saída:

agendamento round-robin
 Shashank, Mishra, Auditor, 909090090, 45000, Moti Vihar Naveen, Singh, Accountant, 213344455, 12000, Shastri Nagar Mahesh, Nigam, Sr. Manager, 787878878, 30000, Ashok Nagar Manish, Gupta, Manager, 999988765, 20000, Saket Nagar 

Método Java String.split()

Java String.split() identifica o delimitador e divide as linhas em tokens.

Sintaxe

 public String[] split(String regex) 

O método analisa uma expressão regular delimitadora. O método retorna uma matriz de string calculada dividindo essa string em torno das correspondências da expressão regular fornecida.

Considere a sequência:

'isto:é:uma:tabela' Regex Resultado : {'isto', 'é', 'a', 'tabela'}

Exemplo

No exemplo a seguir, usamos a classe BufferedReader que lê o arquivo linha por linha até que o caractere EOF (fim de arquivo) seja alcançado.

 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadCSVExample2 { public static void main(String[] args) { String line = ''; String splitBy = ','; try { //parsing a CSV file into BufferedReader class constructor BufferedReader br = new BufferedReader(new FileReader('CSVDemo.csv')); while ((line = br.readLine()) != null) //returns a Boolean value { String[] employee = line.split(splitBy); // use comma as separator System.out.println('Employee [First Name=' + employee[0] + ', Last Name=' + employee[1] + ', Designation=' + employee[2] + ', Contact=' + employee[3] + ', Salary= ' + employee[4] + ', City= ' + employee[5] +']'); } } catch (IOException e) { e.printStackTrace(); } } } 

Saída:

 Employee [First Name= Shashank, Last Name= Mishra, Designation= Auditor, Contact= 909090090, Salary= 45000, City= Moti Vihar] Employee [First Name= Naveen, Last Name=Singh, Designation= Accountant, Contact=213344455, Salary= 12000, City= Shastri Nagar] Employee [First Name= Mahesh, Last Name=Nigam, Designation= Sr. Manager, Contact=787878878, Salary= 30000, City= Ashok Nagar] Employee [First Name= Manish, Last Name=Gupta, Designation= Manager, Contact=999988765, Salary= 20000, City= Saket Nagar] 

Usando API OpenCSV

OpenCSV é uma API de terceiros que fornece bibliotecas padrão para ler várias versões de arquivos CSV. A biblioteca oferece melhor controle para lidar com o arquivo CSV. A biblioteca também pode ler o formato de arquivo TDF (arquivo delimitado por tabulação).

Recursos do OpenCSV

  • Qualquer número de valores por linha.
  • Ignora vírgulas em elementos citados.
  • Lida com entradas que abrangem várias linhas.

O Leitor CSV class é usada para ler um arquivo CSV. A classe fornece o construtor da classe CSVReader para analisar um arquivo CSV.

Sintaxe

 public CSVReder(Reader reader, char separator) OR public CSVReder(Reader reader) 

Parâmetros

leitor: O leitor para uma fonte CSV.

separador: É um delimitador usado para separar entradas.

Etapas para ler o arquivo CSV no Eclipse:

Passo 1: Crie um arquivo de classe com o nome LerCSVExample3 e escreva o seguinte código.

Passo 2: Criar uma biblioteca pasta no projeto.

Etapa 3: Download opecsv-3.8.jar de

https://repo1.maven.org/maven2/com/opencsv/opencsv/3.8/opencsv-3.8.jar

Passo 4: Copie o opencsv-3.8.jar e cole na pasta lib.

Etapa 5: Agora, execute o programa.

Exemplo

 import java.io.FileReader; import com.opencsv.CSVReader; public class ReadCSVExample3 { public static void main(String[] args) { CSVReader reader = null; try { //parsing a CSV file into CSVReader class constructor reader = new CSVReader(new FileReader('F:\CSVDemo.csv')); String [] nextLine; //reads one line at a time while ((nextLine = reader.readNext()) != null) { for(String token : nextLine) { System.out.print(token); } System.out.print('
'); } } catch (Exception e) { e.printStackTrace(); } } } 

Saída:

 Shashank Mishra Auditor 909090090 45000 Moti Vihar Naveen Singh Accountant 213344455 12000 Shastri Nagar Mahesh NigamSr. Manager 787878878 30000 Ashok Nagar Manish Gupta Manager 999988765 20000 Saket Nagar 

Lendo arquivo CSV com um separador diferente

string de corte java

No arquivo CSV a seguir, usamos ponto e vírgula (;) para separar tokens.

Como ler arquivo CSV em Java

Exemplo

 import java.io.FileReader; import java.io.IOException; import com.opencsv.CSVReader; public class ReadCSVExample4 { public static void main(String[] args) { CSVReader reader = null; try { reader = new CSVReader(new FileReader('F:\CSVDemo.csv')); String [] nextLine; //read one line at a time while ((nextLine = reader.readNext()) != null) { for(String token : nextLine) { System.out.println(token); } System.out.print('
'); } } catch (Exception e) { e.printStackTrace(); } } } 

Saída:

 Shashank; Mishra; Auditor; 909090090; 45000; Moti Vihar Naveen; Singh; Accountant; 213344455; 12000; Shastri Nagar Mahesh; Nigam; Sr. Manager; 787878878; 30000; Ashok Nagar Manish; Gupta; Manager; 999988765; 20000; Saket Nagar