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.