logo

Kaip skaityti CSV failą Java

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:

Kaip skaityti CSV failą Java

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.

Kaip skaityti CSV failą Java

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

Kaip skaityti CSV failą Java

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

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į (;).

Kaip skaityti CSV failą Java

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