logo

כיצד לקרוא קובץ CSV ב-Java

ה 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

שימוש בפנקס רשימות

שלב 1: לִפְתוֹחַ פנקס רשימות .

שלב 2: כתוב כמה נתונים לקובץ מופרד על ידי פסיק (,) . לדוגמה:

Vivek, Singh, 23, 9999999, Chandigarh

שלב 3: שמור את הקובץ עם .csv סיומת.

יצרנו את הקובץ הבא.

כיצד לקרוא קובץ CSV ב-Java

שיעור Java Scanner

Java סוֹרֵק class מספקים שיטות שונות שבאמצעותן נוכל לקרוא קובץ 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() מזהה את המפריד ומפצל את השורות לאסימונים.

תחביר

 public String[] split(String regex) 

השיטה מנתחת ביטוי רגולרי תוחם. השיטה מחזירה מערך של מחרוזת המחושבת על ידי פיצול מחרוזת זו סביב התאמות של הביטוי הרגולרי הנתון.

מחרוזת של אורך

שקול את המחרוזת:

'זה שולחן' Regex תוֹצָאָה : {'זה שולחן'}

דוגמא

בדוגמה הבאה, אנו משתמשים במחלקה 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

  • כל מספר של ערכים בכל שורה.
  • מתעלם מפסיקים באלמנטים במרכאות.
  • מטפל בערכים המשתרעים על פני מספר שורות.

ה CSVReader class משמשת לקריאת קובץ CSV. המחלקה מספקת בנאי מחלקות CSVReader לניתוח קובץ CSV.

תחביר

רשימות לטקס
 public CSVReder(Reader reader, char separator) OR public CSVReder(Reader reader) 

פרמטרים

קוֹרֵא: הקורא למקור CSV.

מפריד: זהו מפריד המשמש להפרדת ערכים.

שלבים לקריאת קובץ CSV ב-eclipse:

שלב 1: צור קובץ כיתה עם השם קרא CSVEexample3 וכתוב את הקוד הבא.

שלב 2: ליצור lib תיקייה בפרויקט.

שלב 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

דוגמא

 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