logo

Hur man läser CSV-fil i Java

De CSV står för Kommaseparerade värden . Det är ett enkelt filformat som används för att lagra tabelldata i enkel textform, såsom ett kalkylblad eller databas. Filerna i CSV format kan importeras till och exporteras från program (Microsoft Office och Excel) som lagrar data i tabeller. CSV-filen använde en avgränsare för att identifiera och separera olika datatoken i en fil. CSV-filformatet används när vi flyttar tabelldata mellan program som inbyggt fungerar på inkompatibla format. Det finns följande sätt att läsa CSV-filer i Java. Standardavgränsaren för en CSV-fil är en kommatecken (,) .

Det finns följande sätt att skriva ut en array i Java:

  • Java Scanner klass
  • Java String.split() metod
  • Använder sig av Öppna CSV API

Hur man skapar en CSV-fil

Det finns två sätt att skapa en CSV-fil:

  • Använder sig av Microsoft excel
  • Använder sig av Anteckningsblock

Använder Microsoft Excel

Steg 1: Öppna Microsoft Excel.

Steg 2: Skriv in följande data i filen:

Hur man läser CSV-fil i Java

Steg 3: Spara nu filen. Ange filnamnet CSVDemo och välj CSV (kommaavgränsad) från spara som typ meny. Klicka nu på knappen Spara.

Hur man läser CSV-fil i Java

Använder Anteckningar

Steg 1: Öppen anteckningsblock .

Steg 2: Skriv några data i filen separerade med kommatecken (,) . Till exempel:

Vivek, Singh, 23, 9999999, Chandigarh

Steg 3: Spara filen med .csv förlängning.

Vi har skapat följande fil.

Hur man läser CSV-fil i Java

Java Scanner klass

Java Scanner klass tillhandahålla olika metoder med vilka vi kan läsa CSV-fil. Klassen Scanner tillhandahåller en konstruktor som producerar värden som skannas från den angivna filen. Det bryter data i token-formuläret. Den använder ett avgränsningsmönster som som standard matchar vitt utrymme. De resulterande tokens omvandlas sedan till värden av olika typer med hjälp av next()-metoderna.

Exempel

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

Produktion:

 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()-metoden

Java String.split() identifierar avgränsaren och delar upp raderna i tokens.

Syntax

 public String[] split(String regex) 

Metoden analyserar ett avgränsande reguljärt uttryck. Metoden returnerar en array av sträng som beräknas genom att dela denna sträng runt matchningar av det givna reguljära uttrycket.

binärt träd

Tänk på strängen:

'detta är ett bord' Regex Resultat : {'detta är ett bord'}

Exempel

I följande exempel använder vi BufferedReader-klassen som läser filen rad för rad tills EOF-tecknet (filslut) nås.

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

Produktion:

 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] 

Använder OpenCSV API

OpenCSV är ett tredje parts API som tillhandahåller standardbibliotek för att läsa olika versioner av CSV-filer. Biblioteket ger bättre kontroll för att hantera CSV-filen. Biblioteket kan också läsa filformatet TDF (Tab-Delimited File).

Funktioner i OpenCSV

  • Valfritt antal värden per rad.
  • Ignorerar kommatecken i citattecken.
  • Hanterar poster som sträcker sig över flera rader.

De CSVReader klass används för att läsa en CSV-fil. Klassen tillhandahåller CSVReader-klasskonstruktor för att analysera en CSV-fil.

Syntax

linux mint cinnamon vs mate
 public CSVReder(Reader reader, char separator) OR public CSVReder(Reader reader) 

Parametrar

läsare: Läsaren till en CSV-källa.

separator: Det är en avgränsare som används för att separera poster.

Steg för att läsa CSV-fil i eclipse:

Steg 1: Skapa en klassfil med namnet LäsCSVEexempel3 och skriv följande kod.

Steg 2: Skapa en lib mapp i projektet.

Steg 3: Ladda ner opecsv-3.8.jar från

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

Steg 4: Kopiera opencsv-3.8.jar och klistra in i mappen lib.

Steg 5: Kör nu programmet.

Exempel

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

Produktion:

 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 

Läser CSV-fil med en annan separator

I följande CSV-fil har vi använt semikolon (;) för att separera tokens.

Hur man läser CSV-fil i Java

Exempel

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

Produktion:

 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