Читання файлу CSV у масиві

1. Огляд

Простіше кажучи, файл CSV (значення, розділені комами) містить організовану інформацію, розділену комами.

У цьому посібнику ми розглянемо різні способи читання файлу CSV у масив.

2. BufferedReader у java.io

Спочатку ми будемо читати записи по черзі, використовуючи readLine () у BufferedReader . Потім ми розділимо рядок на лексеми на основі розділювача комами.

List
    
      records = new ArrayList(); try (BufferedReader br = new BufferedReader(new FileReader("book.csv"))) { String line; while ((line = br.readLine()) != null) { String[] values = line.split(COMMA_DELIMITER); records.add(Arrays.asList(values)); } }
    

Зверніть увагу, що при такому підході більш складні CSV-файли (наприклад, цитування або включення коми як значення) не будуть аналізуватися за призначенням.

3. Сканер у java.util

Далі ми будемо використовувати java.util.Scanner для проходження вмісту файлу та послідовного отримання рядків по черзі:

List
    
      records = new ArrayList(); try (Scanner scanner = new Scanner(new File("book.csv"));) { while (scanner.hasNextLine()) { records.add(getRecordFromLine(scanner.nextLine())); } }
    

Потім ми проаналізуємо рядки і збережемо його в масиві:

private List getRecordFromLine(String line) { List values = new ArrayList(); try (Scanner rowScanner = new Scanner(line)) { rowScanner.useDelimiter(COMMA_DELIMITER); while (rowScanner.hasNext()) { values.add(rowScanner.next()); } } return values; }

Як і раніше, при такому підході більш досконалі CSV-файли не будуть аналізуватися за призначенням.

4. OpenCSV

Ми можемо звертатись до більш складних файлів CSV за допомогою OpenCSV.

OpenCSV - це стороння бібліотека, яка надає API для роботи з файлами CSV. Для читання записів у файлі ми використаємо метод readNext () у CSVReader :

List
    
      records = new ArrayList
     
      (); try (CSVReader csvReader = new CSVReader(new FileReader("book.csv"));) { String[] values = null; while ((values = csvReader.readNext()) != null) { records.add(Arrays.asList(values)); } }
     
    

Щоб глибше глибше дізнатись про OpenCSV - ми можемо ознайомитися з нашим посібником з OpenCSV.

5. Висновок

У цьому короткому посібнику ми дослідили різні способи читання файлу CSV у масив.

Як завжди, повний вихідний код прикладів доступний на GitHub.