Een CSV-bestand in een array lezen

1. Overzicht

Simpel gezegd, een CSV-bestand (Comma Separated Values) bevat georganiseerde informatie gescheiden door een komma-scheidingsteken.

In deze zelfstudie bekijken we verschillende manieren om een ​​CSV-bestand in een array te lezen.

2. BufferedReader in java.io

Eerst lezen we de records regel voor regel met Lees regel() in BufferedReader. Vervolgens splitsen we de regel op in tokens op basis van het komma-scheidingsteken.

Lijst records = nieuwe ArrayList (); probeer (BufferedReader br = nieuwe BufferedReader (nieuwe FileReader ("book.csv"))) {String line; while ((line = br.readLine ())! = null) {String [] waarden = line.split (COMMA_DELIMITER); records.add (Arrays.asList (waarden)); }}

Merk op dat met deze benadering meer geavanceerde CSV's (bijv. Citeren of komma's opnemen als waarden) niet worden geparseerd zoals bedoeld.

3. Scanner in java.util

Vervolgens gaan we een java.util.Scanner om de inhoud van het bestand te doorlopen en regels serieel één voor één op te halen:

Lijst records = nieuwe ArrayList (); probeer (Scanner scanner = nieuwe scanner (nieuw bestand ("book.csv"));) {while (scanner.hasNextLine ()) {records.add (getRecordFromLine (scanner.nextLine ())); }}

Vervolgens zullen we de regels ontleden en opslaan in een array:

private List getRecordFromLine (String line) {List values ​​= new ArrayList (); probeer (Scanner rowScanner = nieuwe scanner (lijn)) {rowScanner.useDelimiter (COMMA_DELIMITER); while (rowScanner.hasNext ()) {waarden.add (rowScanner.next ()); }} retourwaarden; }

Net als voorheen zullen met deze aanpak meer geavanceerde CSV's niet worden geparseerd zoals bedoeld.

4. OpenCSV

We kunnen complexere CSV-bestanden adresseren met OpenCSV.

OpenCSV is een bibliotheek van derden die een API biedt om met CSV-bestanden te werken. We zullen gebruiken readNext () methode in CSV-reader om de records in het bestand te lezen:

Lijst records = nieuwe ArrayList(); probeer (CSVReader csvReader = nieuwe CSVReader (nieuwe FileReader ("book.csv"));) {String [] waarden = null; while ((values ​​= csvReader.readNext ())! = null) {records.add (Arrays.asList (waarden)); }}

Om dieper te graven en meer te leren over OpenCSV - kunnen we onze OpenCSV-tutorial bekijken.

5. Conclusie

In deze korte tutorial hebben we verschillende manieren onderzocht om CSV-bestanden in een array te lezen.

Zoals altijd is de volledige broncode van de voorbeelden beschikbaar op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found