CSV fájl olvasása tömbbe

1. Áttekintés

Egyszerűen fogalmazva: a CSV (vesszővel elválasztott értékek) fájl szervezett információkat tartalmaz, vesszővel elválasztva.

Ebben az oktatóanyagban megvizsgáljuk, hogyan lehet CSV-fájlt tömbbe olvasni.

2. BufferedReader ban ben java.io

Először soronként olvassuk el a rekordokat readLine () ban ben BufferedReader. Ezután a sort vesszőhatároló alapján jelekre osztjuk.

Lista rekordok = új ArrayList (); try (BufferedReader br = new BufferedReader (new FileReader ("book.csv")))) {Karakterlánc; while ((line = br.readLine ())! = null) {String [] értékek = line.split (COMMA_DELIMITER); records.add (Tömbök.asList (értékek)); }}

Ezzel a megközelítéssel vegye figyelembe, hogy a kifinomultabb CSV-k (például idézőjelek vagy vesszők értékként történő feltüntetése) nem kerülnek értelmezésre a szándék szerint.

3. Scanner ban ben java.util

Ezután a java.util.Scan a fájl tartalmának végigfutása és a sorok soros lekérése egyesével:

Lista rekordok = új ArrayList (); try (Szkenner szkenner = új Szkenner (új Fájl ("könyv.csv")));) {while (szkenner.hasNextLine ()) {records.add (getRecordFromLine (scanner.nextLine ())); }}

Ezután elemezzük a sorokat, és egy tömbbe tároljuk:

privát lista getRecordFromLine (karakterlánc sor) {Lista értékek = új ArrayList (); próbáld ki (Szkenner rowScanner = új Szkenner (sor)) {rowScanner.useDelimiter (COMMA_DELIMITER); while (rowScanner.hasNext ()) {értékek.add (rowScanner.next ()); }} visszatérési értékek; }

A korábbiakhoz hasonlóan ennél a megközelítésnél a kifinomultabb CSV-k nem lesznek értelmezve a szándék szerint.

4. OpenCSV

Bonyolultabb CSV fájlokat tudunk címezni az OpenCSV segítségével.

Az OpenCSV egy harmadik féltől származó könyvtár, amely API-t biztosít a CSV-fájlokkal való együttműködéshez. Majd használjuk readNext () módszer ben CSVReader a fájlban található rekordok elolvasásához:

Lista rekordok = új ArrayList(); try (CSVReader csvReader = new CSVReader (new FileReader ("book.csv"));) {String [] értékek = null; while ((értékek = csvReader.readNext ())! = null) {records.add (Tömbök.asList (értékek)); }}

Ha mélyebbre ásunk és többet megtudunk az OpenCSV-ről - megnézhetjük az OpenCSV oktatóanyagunkat.

5. Következtetés

Ebben a gyors bemutatóban különböző módszereket tártunk fel a CSV-fájl tömbbe olvasására.

Mint mindig, a példák teljes forráskódja elérhető a GitHubon.