Lese en CSV-fil i en matrise

1. Oversikt

Enkelt sagt, en CSV (Comma Separated Values) -fil inneholder organisert informasjon atskilt med kommaavgrenser.

I denne opplæringen vil vi se på forskjellige måter å lese en CSV-fil inn i en matrise.

2. BufferedReader i java.io

Først leser vi postene linje for linje ved hjelp av readLine () i BufferedReader. Deretter deler vi linjen i tokens basert på kommaavgrenseren.

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

Merk med denne tilnærmingen at mer sofistikerte CSV-er (f.eks. Sitere eller inkludere komma som verdier) vil ikke bli analysert etter hensikten.

3. Skanner i java.util

Deretter skal vi bruke en java.util.Scanner for å kjøre gjennom innholdet i filen og hente linjer serievis, en etter en:

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

Deretter analyserer vi linjene og lagrer dem i en matrise:

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

Som tidligere, med denne tilnærmingen, blir ikke mer sofistikerte CSV-er analysert etter hensikten.

4. OpenCSV

Vi kan adressere mer komplekse CSV-filer med OpenCSV.

OpenCSV er et tredjepartsbibliotek som gir et API for å jobbe med CSV-filer. Vi bruker readNext () metode i CSV-leser for å lese postene i filen:

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

For å grave dypere og lære mer om OpenCSV - kan vi sjekke ut OpenCSV-veiledningen.

5. Konklusjon

I denne raske opplæringen utforsket vi forskjellige måter å lese CSV-filer inn i en matrise.

Som alltid er hele kildekoden til eksemplene tilgjengelig på GitHub.


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