logo

Hoe een CSV-bestand in Java te lezen

De CSV betekent Door komma's gescheiden waarden . Het is een eenvoudig bestandsformaat dat wordt gebruikt om tabelgegevens in eenvoudige tekstvorm op te slaan, zoals een spreadsheet of database. De bestanden in de CSV formaat kan worden geïmporteerd naar en geëxporteerd vanuit programma's (Microsoft Office en Excel) die gegevens in tabellen opslaan. Het CSV-bestand gebruikte een scheidingsteken om verschillende gegevenstokens in een bestand te identificeren en te scheiden. Het CSV-bestandsformaat wordt gebruikt wanneer we tabelgegevens verplaatsen tussen programma's die van nature op incompatibele formaten werken. Er zijn de volgende manieren om het CSV-bestand in Java te lezen. Het standaardscheidingsteken van een CSV-bestand is a komma (,) .

Er zijn de volgende manieren om een ​​array in Java af te drukken:

  • Java Scanner klas
  • Java Tekenreeks.split() methode
  • Gebruik makend van CSV openen API

Hoe CSV-bestand te maken

Er zijn twee manieren om een ​​CSV-bestand te maken:

  • Gebruik makend van Microsoft Excel
  • Gebruik makend van Kladblok

Met behulp van Microsoft Excel

Stap 1: Open Microsoft Excel.

Stap 2: Schrijf de volgende gegevens in het bestand:

Hoe een CSV-bestand in Java te lezen

Stap 3: Sla het bestand nu op. Geef de bestandsnaam op CSVDemo en selecteer CSV (door komma's gescheiden) uit het opslaan als type menu. Klik nu op de knop Opslaan.

Hoe een CSV-bestand in Java te lezen

Kladblok gebruiken

Stap 1: Open kladblok .

Stap 2: Schrijf enkele gegevens naar een bestand, gescheiden door komma (,) . Bijvoorbeeld:

Vivek, Singh, 23, 9999999, Chandigarh

Stap 3: Sla het bestand op met .csv verlenging.

We hebben het volgende bestand gemaakt.

Hoe een CSV-bestand in Java te lezen

Java Scanner-klasse

Java Scanner class biedt verschillende methoden waarmee we het CSV-bestand kunnen lezen. De klasse Scanner biedt een constructor die waarden produceert die zijn gescand uit het opgegeven bestand. Het verdeelt gegevens in de tokenvorm. Het gebruikt een scheidingstekenpatroon dat standaard overeenkomt met de witruimte. De resulterende tokens worden vervolgens omgezet in waarden van verschillende typen met behulp van de next()-methoden.

Voorbeeld

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

Uitgang:

 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 

Java String.split()-methode

Java Tekenreeks.split() identificeert het scheidingsteken en splitst de rijen in tokens.

Syntaxis

 public String[] split(String regex) 

De methode ontleedt een begrenzende reguliere expressie. De methode retourneert een reeks tekenreeksen die zijn berekend door deze tekenreeks te splitsen rond overeenkomsten van de gegeven reguliere expressie.

datumformaat.formaat

Beschouw de string:

'dit is een tafel' Regex Resultaat : {'dit is een tafel'}

Voorbeeld

In het volgende voorbeeld gebruiken we de klasse BufferedReader die het bestand regel voor regel leest totdat het EOF-teken (end of file) is bereikt.

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

Uitgang:

 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] 

OpenCSV-API gebruiken

OpenCSV is een API van derden die standaardbibliotheken biedt om verschillende versies van CSV-bestanden te lezen. De bibliotheek biedt betere controle over het verwerken van het CSV-bestand. De bibliotheek kan ook het TDF-bestandsformaat (Tab-Delimited File) lezen.

Kenmerken van OpenCSV

  • Een willekeurig aantal waarden per regel.
  • Negeert komma's in geciteerde elementen.
  • Verwerkt vermeldingen die meerdere regels beslaan.

De CSV-lezer klasse wordt gebruikt om een ​​CSV-bestand te lezen. De klasse biedt een CSVReader-klasseconstructor om een ​​CSV-bestand te parseren.

Syntaxis

zoekmachine en voorbeelden
 public CSVReder(Reader reader, char separator) OR public CSVReder(Reader reader) 

Parameters

lezer: De lezer naar een CSV-bron.

scheidingsteken: Het is een scheidingsteken dat wordt gebruikt om vermeldingen te scheiden.

Stappen om het CSV-bestand in Eclipse te lezen:

Stap 1: Maak een klassenbestand met de naam LeesCSVVoorbeeld3 en schrijf de volgende code.

Stap 2: Maak een libr map in het project.

Stap 3: Downloaden opecsv-3.8.jar van

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

Stap 4: Kopieer de opencsv-3.8.jar en plak het in de map lib.

Stap 5: Voer nu het programma uit.

Voorbeeld

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

Uitgang:

 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 

CSV-bestand lezen met een ander scheidingsteken

In het volgende CSV-bestand hebben we een puntkomma (;) gebruikt om tokens van elkaar te scheiden.

Hoe een CSV-bestand in Java te lezen

Voorbeeld

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

Uitgang:

 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