Membaca File CSV menjadi Array

1. Ikhtisar

Sederhananya, file CSV (Comma Separated Values) berisi informasi terorganisir yang dipisahkan oleh pemisah koma.

Dalam tutorial ini, kita akan melihat berbagai cara untuk membaca file CSV menjadi sebuah array.

2. BufferedReader di java.io

Pertama, kita akan membaca record baris demi baris menggunakan readLine () di BufferedReader . Kemudian kita akan membagi baris menjadi token berdasarkan pemisah koma.

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

Perhatikan dengan pendekatan ini, CSV yang lebih canggih (misalnya mengutip atau menyertakan koma sebagai nilai) tidak akan diuraikan sebagaimana mestinya.

3. Scanner di java.util

Selanjutnya, kita akan menggunakan java.util.Scanner untuk menjalankan konten file dan mengambil baris secara serial, satu per satu:

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

Kemudian kami akan mem-parsing garis dan menyimpannya ke dalam array:

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

Seperti sebelumnya, dengan pendekatan ini, CSV yang lebih canggih tidak akan diurai sebagaimana mestinya.

4. OpenCSV

Kita dapat menangani file CSV yang lebih kompleks dengan OpenCSV.

OpenCSV adalah pustaka pihak ketiga yang menyediakan API untuk bekerja dengan file CSV. Kami akan menggunakan metode readNext () di CSVReader untuk membaca catatan di file:

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

Untuk menggali lebih dalam dan mempelajari lebih lanjut tentang OpenCSV - kita dapat melihat tutorial OpenCSV kami.

5. Kesimpulan

Dalam tutorial singkat ini, kami menjelajahi berbagai cara untuk membaca file CSV menjadi sebuah array.

Seperti biasa, kode sumber lengkap dari contoh tersedia di GitHub.