logo

Как да четем CSV файл в Java

The CSV означава Стойности, разделени със запетая . Това е прост файлов формат, който се използва за съхраняване на таблични данни в проста текстова форма, като например електронна таблица или база данни. Файловете в CSV формат може да се импортира и експортира от програми (Microsoft Office и Excel), които съхраняват данни в таблици. CSV файлът използва разделител за идентифициране и разделяне на различни токени за данни във файл. Файловият формат CSV се използва, когато преместваме таблични данни между програми, които работят с несъвместими формати. Има следните начини за четене на CSV файл в Java. Разделителят по подразбиране на CSV файл е a запетая (,) .

Има следните начини за отпечатване на масив в Java:

  • Java Скенер клас
  • Java String.split() метод
  • Използвайки OpenCSV API

Как да създадете CSV файл

Има два начина за създаване на CSV файл:

  • Използвайки Microsoft Excel
  • Използвайки Бележник

С помощта на Microsoft Excel

Етап 1: Отворете Microsoft Excel.

Стъпка 2: Запишете следните данни във файла:

Как да прочетете CSV файл в Java

Стъпка 3: Сега запазете файла. Въведете името на файла CSVDemo и изберете CSV (разделен със запетая) от запиши като тип меню. Сега щракнете върху бутона Запазване.

Как да прочетете CSV файл в Java

Използване на Notepad

Етап 1: отворено бележник .

произволно число gen java

Стъпка 2: Запишете някои данни във файл, разделени от запетая (,) . Например:

Вивек, Сингх, 23, 9999999, Чандигарх

Стъпка 3: Запазете файла с .csv разширение.

Създадохме следния файл.

Как да прочетете CSV файл в Java

Клас Java Scanner

Java Скенер предоставя различни методи, чрез които можем да четем CSV файл. Класът Scanner предоставя конструктор, който създава стойности, сканирани от посочения файл. Той разбива данните във формата на токена. Той използва модел на разделител, който по подразбиране съответства на бяло пространство. След това получените токени се преобразуват в стойности от различни типове с помощта на методите next().

Пример

 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 } } 

Изход:

 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() метод

Java String.split() идентифицира разделителя и разделя редовете на токени.

rdbms

Синтаксис

 public String[] split(String regex) 

Методът анализира разделящ регулярен израз. Методът връща масив от низ, изчислен чрез разделяне на този низ около съвпадения на дадения регулярен израз.

Помислете за низа:

преименуване на директория

'това:е:маса' Regex Резултат : {'this', 'is', 'a', 'table'}

Пример

В следващия пример използваме клас BufferedReader, който чете файл ред по ред, докато се достигне символът EOF (край на файла).

 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(); } } } 

Изход:

 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

OpenCSV е API на трета страна, който предоставя стандартни библиотеки за четене на различни версии на CSV файл. Библиотеката осигурява по-добър контрол за обработка на CSV файла. Библиотеката може също да чете файлов формат TDF (файл, разделен с разделители).

Характеристики на OpenCSV

  • произволен брой стойности на ред.
  • Игнорира запетаите в елементите в кавички.
  • Обработва записи, които обхващат няколко реда.

The CSVReader клас се използва за четене на CSV файл. Класът предоставя конструктор на клас CSVReader за анализ на CSV файл.

Синтаксис

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

Параметри

низът съдържа java

читател: Четецът към CSV източник.

разделител: Това е разделител, който се използва за разделяне на записи.

Стъпки за четене на CSV файл в eclipse:

Етап 1: Създайте клас файл с името Прочетете CSVExample3 и напишете следния код.

Стъпка 2: Създавам либ папка в проекта.

Стъпка 3: Изтегли opecsv-3.8.jar от

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

Стъпка 4: Копирайте opencsv-3.8.jar и поставете в папката lib.

Стъпка 5: Сега стартирайте програмата.

Пример

 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(); } } } 

Изход:

 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 файл с различен разделител

В следния CSV файл сме използвали точка и запетая (;) за разделяне на токени.

Как да прочетете CSV файл в Java

Пример

преименуване на директория linux
 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(); } } } 

Изход:

 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