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:
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.
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.
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.
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