logo

Hogyan olvassunk CSV-fájlt Java-ban

A CSV jelentése Vesszővel elválasztott értékek . Ez egy egyszerű fájlformátum, amelyet táblázatos adatok egyszerű szöveges formában, például táblázatban vagy adatbázisban történő tárolására használnak. A fájlok a CSV formátum importálható és exportálható programokba (Microsoft Office és Excel), amelyek táblázatokban tárolják az adatokat. A CSV-fájl határolót használt a fájlban lévő különböző adattoken azonosítására és elkülönítésére. A CSV fájlformátumot akkor használjuk, amikor táblázatos adatokat mozgatunk olyan programok között, amelyek natívan nem kompatibilis formátumokon működnek. A következő módokon olvashat CSV fájlt Java nyelven. A CSV-fájlok alapértelmezett elválasztója a vessző (,) .

A következő módokon nyomtathat ki egy tömböt Java nyelven:

  • Jáva Scanner osztály
  • Jáva String.split() módszer
  • Használata OpenCSV API

Hogyan készítsünk CSV fájlt

Kétféleképpen hozhat létre CSV-fájlt:

  • Használata Microsoft Excel
  • Használata Jegyzettömb

Microsoft Excel használatával

1. lépés: Nyissa meg a Microsoft Excelt.

2. lépés: Írja be a következő adatokat a fájlba:

Hogyan olvassunk CSV fájlt Java nyelven

3. lépés: Most mentse a fájlt. Adja meg a fájl nevét CSVDemo és válassza ki a CSV (vesszővel tagolt) elemet mentés típusként menü. Most kattintson a Mentés gombra.

Hogyan olvassunk CSV fájlt Java nyelven

Jegyzettömb használata

1. lépés: Nyisd ki jegyzettömb .

2. lépés: Írjon néhány adatot fájlba, elválasztva vessző (,) . Például:

top 10 hentai

Vivek, Singh, 23, 9999999, Chandigarh

3. lépés: Mentse a fájlt a .csv kiterjesztés.

A következő fájlt hoztuk létre.

Hogyan olvassunk CSV fájlt Java nyelven

Java Scanner osztály

Jáva Scanner osztály különféle módszereket kínál a CSV-fájlok olvasásához. A Scanner osztály olyan konstruktort biztosít, amely a megadott fájlból szkennelt értékeket állít elő. Az adatokat token formába bontja. Határoló mintát használ, amely alapértelmezés szerint megegyezik a szóközzel. A kapott tokenek ezután különböző típusú értékekké alakultak a next() metódussal.

Példa

 import java.io.*; import java.util.Scanner; public class ReadCSVExample1 { public static void main(String[] args) throws Exception { //parsing a CSV file into Scanner class constructor Scanner sc = new Scanner(new File('F:\CSVDemo.csv')); sc.useDelimiter(','); //sets the delimiter pattern while (sc.hasNext()) //returns a boolean value { System.out.print(sc.next()); //find and returns the next complete token from this scanner } sc.close(); //closes the scanner } } 

Kimenet:

 Shashank, Mishra, Auditor, 909090090, 45000, Moti Vihar Naveen, Singh, Accountant, 213344455, 12000, Shastri Nagar Mahesh, Nigam, Sr. Manager, 787878878, 30000, Ashok Nagar Manish, Gupta, Manager, 999988765, 20000, Saket Nagar 

Java String.split() metódus

Jáva String.split() azonosítja a határolót, és felosztja a sorokat tokenekre.

Szintaxis

 public String[] split(String regex) 

A metódus egy határoló reguláris kifejezést elemez. A metódus egy karakterlánc tömbjét adja vissza, amelyet úgy számítanak ki, hogy ezt a karakterláncot felosztják az adott reguláris kifejezés egyezései köré.

Vegye figyelembe a karakterláncot:

'ez egy asztal' Regex Eredmény : {'ez egy asztal'}

Példa

A következő példában a BufferedReader osztályt használjuk, amely soronként olvassa be a fájlt, amíg el nem éri az EOF (fájl vége) karaktert.

 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadCSVExample2 { public static void main(String[] args) { String line = ''; String splitBy = ','; try { //parsing a CSV file into BufferedReader class constructor BufferedReader br = new BufferedReader(new FileReader('CSVDemo.csv')); while ((line = br.readLine()) != null) //returns a Boolean value { String[] employee = line.split(splitBy); // use comma as separator System.out.println('Employee [First Name=' + employee[0] + ', Last Name=' + employee[1] + ', Designation=' + employee[2] + ', Contact=' + employee[3] + ', Salary= ' + employee[4] + ', City= ' + employee[5] +']'); } } catch (IOException e) { e.printStackTrace(); } } } 

Kimenet:

 Employee [First Name= Shashank, Last Name= Mishra, Designation= Auditor, Contact= 909090090, Salary= 45000, City= Moti Vihar] Employee [First Name= Naveen, Last Name=Singh, Designation= Accountant, Contact=213344455, Salary= 12000, City= Shastri Nagar] Employee [First Name= Mahesh, Last Name=Nigam, Designation= Sr. Manager, Contact=787878878, Salary= 30000, City= Ashok Nagar] Employee [First Name= Manish, Last Name=Gupta, Designation= Manager, Contact=999988765, Salary= 20000, City= Saket Nagar] 

OpenCSV API használata

Az OpenCSV egy harmadik féltől származó API, amely szabványos könyvtárakat biztosít a CSV-fájlok különféle verzióinak olvasásához. A könyvtár jobb vezérlést biztosít a CSV-fájl kezeléséhez. A könyvtár a TDF (Tab-Delimited File) fájlformátumot is tudja olvasni.

Az OpenCSV jellemzői

  • Soronként tetszőleges számú érték.
  • Figyelmen kívül hagyja a vesszőket az idézőjeles elemekben.
  • Kezeli a több sort átívelő bejegyzéseket.

A CSVReader osztály CSV-fájlok olvasására szolgál. Az osztály CSVReader osztálykonstruktort biztosít a CSV-fájlok elemzéséhez.

Szintaxis

 public CSVReder(Reader reader, char separator) OR public CSVReder(Reader reader) 

Paraméterek

olvasó: Az olvasó egy CSV-forráshoz.

szétválasztó: Ez egy határoló, amelyet a bejegyzések elválasztására használnak.

A CSV-fájl olvasásának lépései eclipse-ben:

1. lépés: Hozzon létre egy osztályfájlt a névvel Olvassa el a CSVEpéldát3 és írja be a következő kódot.

2. lépés: Hozzon létre egy lib mappát a projektben.

3. lépés: Letöltés opecsv-3.8.jar tól től

https://repo1.maven.org/maven2/com/opencsv/opencsv/3.8/opencsv-3.8.jar

4. lépés: Másolja a opencsv-3.8.jar és illessze be a lib mappába.

5. lépés: Most futtassa a programot.

Példa

 import java.io.FileReader; import com.opencsv.CSVReader; public class ReadCSVExample3 { public static void main(String[] args) { CSVReader reader = null; try { //parsing a CSV file into CSVReader class constructor reader = new CSVReader(new FileReader('F:\CSVDemo.csv')); String [] nextLine; //reads one line at a time while ((nextLine = reader.readNext()) != null) { for(String token : nextLine) { System.out.print(token); } System.out.print('
'); } } catch (Exception e) { e.printStackTrace(); } } } 

Kimenet:

 Shashank Mishra Auditor 909090090 45000 Moti Vihar Naveen Singh Accountant 213344455 12000 Shastri Nagar Mahesh NigamSr. Manager 787878878 30000 Ashok Nagar Manish Gupta Manager 999988765 20000 Saket Nagar 

CSV-fájl olvasása másik elválasztóval

A következő CSV-fájlban pontosvesszőt (;) használtunk a tokenek elválasztására.

Hogyan olvassunk CSV fájlt Java nyelven

Példa

 import java.io.FileReader; import java.io.IOException; import com.opencsv.CSVReader; public class ReadCSVExample4 { public static void main(String[] args) { CSVReader reader = null; try { reader = new CSVReader(new FileReader('F:\CSVDemo.csv')); String [] nextLine; //read one line at a time while ((nextLine = reader.readNext()) != null) { for(String token : nextLine) { System.out.println(token); } System.out.print('
'); } } catch (Exception e) { e.printStackTrace(); } } } 

Kimenet:

 Shashank; Mishra; Auditor; 909090090; 45000; Moti Vihar Naveen; Singh; Accountant; 213344455; 12000; Shastri Nagar Mahesh; Nigam; Sr. Manager; 787878878; 30000; Ashok Nagar Manish; Gupta; Manager; 999988765; 20000; Saket Nagar