logo

Com llegir un fitxer CSV a Java

El CSV significa Valors separats per comes . És un format de fitxer senzill que s'utilitza per emmagatzemar dades tabulars en forma de text senzill, com ara un full de càlcul o una base de dades. Els fitxers al CSV El format es pot importar i exportar des de programes (Microsoft Office i Excel) que emmagatzemen dades en taules. El fitxer CSV utilitzava un delimitador per identificar i separar diferents testimonis de dades en un fitxer. El format de fitxer CSV s'utilitza quan movem dades tabulars entre programes que operen de forma nativa en formats incompatibles. Hi ha maneres següents de llegir el fitxer CSV a Java. El separador predeterminat d'un fitxer CSV és a coma (,) .

Hi ha maneres següents d'imprimir una matriu en Java:

  • Java Escàner classe
  • Java String.split() mètode
  • Utilitzant OpenCSV API

Com crear un fitxer CSV

Hi ha dues maneres de crear un fitxer CSV:

  • Utilitzant Microsoft Excel
  • Utilitzant Bloc de notes

Utilitzant Microsoft Excel

Pas 1: Obriu Microsoft Excel.

Pas 2: Escriviu les dades següents al fitxer:

el desplaçament del ratolí no funciona
Com llegir un fitxer CSV a Java

Pas 3: Ara, deseu el fitxer. Proporcioneu el nom del fitxer CSVDemo i seleccioneu CSV (Delimitat per comes) des de l'opció desa com a tipus menú. Ara, feu clic al botó Desa.

Com llegir un fitxer CSV a Java

Utilitzant el Bloc de notes

Pas 1: Obert bloc de notes .

Pas 2: Escriu algunes dades en un fitxer separades per coma (,) . Per exemple:

Vivek, Singh, 23, 9999999, Chandigarh

Pas 3: Desa el fitxer amb .csv extensió.

Hem creat el següent fitxer.

Com llegir un fitxer CSV a Java

Classe d'escàner Java

Java Escàner class proporciona diversos mètodes mitjançant els quals podem llegir el fitxer CSV. La classe Scanner proporciona un constructor que produeix valors escanejats a partir del fitxer especificat. Desglossa les dades en forma de testimoni. Utilitza un patró delimitador que, per defecte, coincideix amb l'espai en blanc. Les fitxes resultants es van convertir després en valors de diferents tipus mitjançant els mètodes next().

Exemple

 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 } } 

Sortida:

 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ètode Java String.split().

Java String.split() identifica el delimitador i divideix les files en fitxes.

Sintaxi

 public String[] split(String regex) 

El mètode analitza una expressió regular delimitadora. El mètode retorna una matriu de cadena calculada dividint aquesta cadena al voltant de coincidències de l'expressió regular donada.

Considereu la cadena:

'this:is:a:table' Regex Resultat : {'això', 'és', 'a', 'taula'}

Exemple

A l'exemple següent, utilitzem la classe BufferedReader que llegeix el fitxer línia per línia fins que s'arriba al caràcter EOF (final del fitxer).

 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(); } } } 

Sortida:

 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] 

Utilitzant l'API OpenCSV

OpenCSV és una API de tercers que ofereix biblioteques estàndard per llegir diverses versions del fitxer CSV. La biblioteca proporciona un millor control per gestionar el fitxer CSV. La biblioteca també pot llegir el format de fitxer TDF (Fitxer delimitat per tabulacions).

Característiques d'OpenCSV

  • Qualsevol nombre de valors per línia.
  • Ignora les comes als elements entre cometes.
  • Gestiona les entrades que abasten diverses línies.

El CSVReader class s'utilitza per llegir un fitxer CSV. La classe proporciona un constructor de classes CSVReader per analitzar un fitxer CSV.

Sintaxi

tipus de dades primitius en java
 public CSVReder(Reader reader, char separator) OR public CSVReder(Reader reader) 

Paràmetres

lector: El lector a una font CSV.

separador: És un delimitador que s'utilitza per separar les entrades.

matriu java de cadena

Passos per llegir el fitxer CSV a eclipse:

Pas 1: Creeu un fitxer de classe amb el nom LlegirCSVExemple3 i escriu el codi següent.

Pas 2: Crea un lib carpeta del projecte.

Pas 3: descarregar opecsv-3.8.jar des de

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

Pas 4: Copia el opencsv-3.8.jar i enganxeu-lo a la carpeta lib.

Pas 5: Ara, executeu el programa.

Exemple

 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(); } } } 

Sortida:

 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 

Llegint fitxer CSV amb un separador diferent

Al següent fitxer CSV, hem utilitzat punt i coma (;) per separar fitxes.

Com llegir un fitxer CSV a Java

Exemple

 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(); } } } 

Sortida:

 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