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.