קריאת קובץ CSV למערך

1. סקירה כללית

במילים פשוטות, קובץ CSV (ערכים מופרדים באמצעות פסיק) מכיל מידע מאורגן המופרד על ידי מפריד פסיקים.

במדריך זה נבדוק דרכים שונות לקרוא קובץ CSV במערך.

2. BufferedReader ב java.io

ראשית, נקרא את הרשומות שורה אחר שורה באמצעות קריאת שורה() ב BufferedReader. לאחר מכן נחלק את השורה לאסימונים על סמך מפריד הפסיקים.

רשימה רשומות = ArrayList חדש (); נסה (BufferedReader br = BufferedReader חדש (FileReader חדש ("book.csv"))) {קו מחרוזת; בעוד ((line = br.readLine ())! = null) {String [] ערכים = line.split (COMMA_DELIMITER); records.add (Arrays.asList (ערכים)); }}

שים לב בגישה זו, קובצי CSV מתוחכמים יותר (למשל ציטוט או הכללת פסיקים כערכים) לא ינוסחו כמתוכנן.

3. סוֹרֵק ב java.util

בשלב הבא נשתמש ב- java.util.Scanner להעביר את תוכן הקובץ ולאחזר שורות סדרתי, אחת אחת:

רשימה רשומות = ArrayList חדש (); נסה (סורק סורק = סורק חדש (קובץ חדש ("book.csv"));) {while (scanner.hasNextLine ()) {records.add (getRecordFromLine (scanner.nextLine ())); }}

לאחר מכן ננתח את השורות ונאחסן אותה במערך:

רשימה פרטית getRecordFromLine (קו מחרוזת) {List values ​​= new ArrayList (); נסה (Scanner rowScanner = סורק חדש (שורה)) {rowScanner.useDelimiter (COMMA_DELIMITER); בעוד (rowScanner.hasNext ()) {values.add (rowScanner.next ()); }} להחזיר ערכים; }

כמו בעבר, עם גישה זו קובצי CSV מתוחכמים יותר לא ינוסחו כמתוכנן.

4. OpenCSV

אנו יכולים לטפל בקבצי CSV מורכבים יותר באמצעות OpenCSV.

OpenCSV היא ספריית צד ג 'המספקת API לעבודה עם קבצי CSV. נשתמש readNext () שיטה ב קורא CSV לקריאת הרשומות בקובץ:

רשימה רשומות = ArrayList חדש(); נסה (CSVReader csvReader = CSVReader חדש (FileReader חדש ("book.csv"));) {String [] ערכים = null; בעוד ((ערכים = csvReader.readNext ())! = null) {records.add (Arrays.asList (ערכים)); }}

כדי להתעמק וללמוד עוד על OpenCSV - נוכל לבדוק את המדריך שלנו ל- OpenCSV.

5. מסקנה

במדריך מהיר זה, בדקנו דרכים שונות לקרוא קובץ CSV במערך.

כמו תמיד, קוד המקור המלא של הדוגמאות זמין באתר GitHub.