Læsning af en CSV-fil i en matrix

1. Oversigt

Enkelt sagt indeholder en CSV (Comma Separated Values) fil organiseret information adskilt af en komma-afgrænser.

I denne vejledning ser vi på forskellige måder at læse en CSV-fil i en matrix.

2. BufferedReader i java.io

Først læser vi posterne linje for linje ved hjælp af readLine () i BufferedReader. Derefter deler vi linjen i tokens baseret på kommaafgrænsen.

Liste poster = ny ArrayList (); prøv (BufferedReader br = ny BufferedReader (ny FileReader ("book.csv"))) {String line; mens ((line = br.readLine ())! = null) {String [] værdier = line.split (COMMA_DELIMITER); recordss.add (Arrays.asList (værdier)); }}

Bemærk med denne fremgangsmåde, at mere sofistikerede CSV'er (f.eks. Citere eller inkludere kommaer som værdier) ikke bliver parset som beregnet.

3. Scanner i java.util

Dernæst skal vi bruge en java.util.Scanner for at køre gennem indholdet af filen og hente linjer serielt, en efter en:

Liste poster = ny ArrayList (); prøv (Scannerscanner = ny Scanner (ny fil ("book.csv"));) {mens (scanner.hasNextLine ()) {records.add (getRecordFromLine (scanner.nextLine ())); }}

Derefter analyserer vi linjerne og gemmer det i en matrix:

privat liste getRecordFromLine (strenglinje) {Listeværdier = ny ArrayList (); prøv (Scanner rowScanner = ny Scanner (linje)) {rowScanner.useDelimiter (COMMA_DELIMITER); mens (rowScanner.hasNext ()) {values.add (rowScanner.next ()); }} returner værdier; }

Som tidligere vil mere sofistikerede CSV'er ikke blive analyseret som beregnet med denne tilgang.

4. OpenCSV

Vi kan adressere mere komplekse CSV-filer med OpenCSV.

OpenCSV er et tredjepartsbibliotek, der giver en API til at arbejde med CSV-filer. Vi bruger readNext () metode i CSVReader at læse optegnelser i filen:

Liste poster = ny ArrayList(); prøv (CSVReader csvReader = ny CSVReader (ny FileReader ("bog.csv"));) {String [] værdier = null; mens ((værdier = csvReader.readNext ())! = null) {records.add (Arrays.asList (værdier)); }}

For at grave dybere og lære mere om OpenCSV - kan vi tjekke vores OpenCSV-tutorial.

5. Konklusion

I denne hurtige vejledning udforskede vi forskellige måder at læse CSV-fil på i en matrix.

Som altid er den fulde kildekode for eksemplerne tilgængelig på GitHub.