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:
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.
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.
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.
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