The CSV reiškia Kableliais atskirtos reikšmės . Tai paprastas failo formatas, naudojamas lentelių duomenims saugoti paprasta teksto forma, pavyzdžiui, skaičiuoklėje arba duomenų bazėje. Failai, esantys CSV formatą galima importuoti ir eksportuoti iš programų (Microsoft Office ir Excel), kurios duomenis saugo lentelėse. CSV failas naudojo skirtuką, kad identifikuotų ir atskirtų skirtingus duomenų prieigos raktus faile. CSV failo formatas naudojamas, kai perkeliame lentelės duomenis tarp programų, kurios iš esmės veikia nesuderinamais formatais. Yra šie būdai, kaip skaityti CSV failą Java. Numatytasis CSV failo skyriklis yra a kablelis (,) .
Yra šie būdai, kaip spausdinti masyvą Java:
- Java Skaitytuvas klasė
- Java String.split() metodas
- Naudojant OpenCSV API
Kaip sukurti CSV failą
Yra du būdai sukurti CSV failą:
- Naudojant Microsoft Excel
- Naudojant Užrašų knygelė
Naudojant Microsoft Excel
1 žingsnis: Atidarykite „Microsoft Excel“.
2 žingsnis: Į failą įrašykite šiuos duomenis:
3 veiksmas: Dabar išsaugokite failą. Pateikite failo pavadinimą CSVDemo ir pasirinkite CSV (atskirta kableliu) iš išsaugoti kaip tipą Meniu. Dabar spustelėkite mygtuką Išsaugoti.
Naudojant Notepad
1 žingsnis: Atviras Užrašų knygelė .
atidaryti nustatymų meniu
2 žingsnis: Įrašykite kai kuriuos duomenis į failą, atskirtą kablelis (,) . Pavyzdžiui:
Vivek, Singh, 23, 9999999, Chandigarh
3 veiksmas: Išsaugokite failą su .csv pratęsimas.
Sukūrėme šį failą.
Java skaitytuvo klasė
Java Skaitytuvas klasė pateikia įvairius metodus, kuriais galime skaityti CSV failą. Skaitytuvo klasė suteikia konstruktorių, kuris sukuria reikšmes, nuskaitytas iš nurodyto failo. Jis suskaido duomenis į žetonų formą. Jame naudojamas skyriklio raštas, kuris pagal numatytuosius nustatymus atitinka tarpą. Tada gauti žetonai konvertuojami į skirtingų tipų reikšmes naudojant next() metodus.
Pavyzdys
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 } }
Išvestis:
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() metodas
Java String.split() identifikuoja skyriklį ir padalija eilutes į žetonus.
Sintaksė
public String[] split(String regex)
Metodas analizuoja skiriamąją reguliariąją išraišką. Metodas grąžina eilutės masyvą, apskaičiuotą padalijus šią eilutę pagal nurodytos reguliariosios išraiškos atitikmenis.
Apsvarstykite eilutę:
'this:is:a:table' Regex Rezultatas : {'this', 'is', 'a', 'table'}
Pavyzdys
Šiame pavyzdyje naudojame BufferedReader klasę, kuri skaito failą eilutė po eilutės, kol pasiekiamas EOF (failo pabaigos) simbolis.
gražiausia šypsena pasaulyje
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(); } } }
Išvestis:
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]
Naudojant OpenCSV API
OpenCSV yra trečiosios šalies API, teikianti standartines bibliotekas įvairioms CSV failo versijoms skaityti. Biblioteka leidžia geriau valdyti CSV failą. Biblioteka taip pat gali skaityti TDF (Tab-Delimited File) failo formatą.
OpenCSV ypatybės
- Bet koks reikšmių skaičius eilutėje.
- Nepaiso kablelių kabutėse.
- Tvarko įrašus, apimančius kelias eilutes.
The CSVReader klasė naudojama skaityti CSV failą. Klasėje yra CSVReader klasės konstruktorius, skirtas analizuoti CSV failą.
Sintaksė
public CSVReder(Reader reader, char separator) OR public CSVReder(Reader reader)
Parametrai
skaitytojas: Skaitytojas į CSV šaltinį.
separatorius: Tai skyriklis, naudojamas įrašams atskirti.
CSV failo skaitymo užtemimo metu veiksmai:
1 žingsnis: Sukurkite klasės failą pavadinimu Skaityti CSVEpavyzdį3 ir parašykite šį kodą.
2 žingsnis: Sukurti lib aplanką projekte.
3 veiksmas: parsisiųsti opecsv-3.8.jar iš
https://repo1.maven.org/maven2/com/opencsv/opencsv/3.8/opencsv-3.8.jar
4 veiksmas: Nukopijuokite opencsv-3.8.jar ir įklijuokite į lib aplanką.
5 veiksmas: Dabar paleiskite programą.
Pavyzdys
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(); } } }
Išvestis:
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
Skaitomas CSV failas su kitu skyrikliu
Šiame CSV faile žetonams atskirti naudojome kabliataškį (;).
Pavyzdys
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(); } } }
Išvestis:
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