Quantcast
Channel: Baeldung
Viewing all articles
Browse latest Browse all 4535

Reading a CSV File into an Array

$
0
0

1. Overview

Simply put, a CSV (Comma Separated Values) file contains organized information separated by a comma delimiter.

In this tutorial, we’ll look into different ways to read a CSV file into an array.

2. BufferedReader in java.io

First, we’ll read the records line by line using readLine() in BufferedReader. Then we’ll split the line into tokens based on the comma delimiter.

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

Note with this approach, more sophisticated CSVs (e.g. quoting or including commas as values) will not be parsed as intended.

3. Scanner in java.util

Next, we’re going to use a java.util.Scanner to run through the contents of the file and retrieve lines serially, one by one:

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

Then we will parse the lines and store it into an array:

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

Like before, with this approach more sophisticated CSVs will not be parsed as intended.

4. OpenCSV

We can address more complex CSV files with OpenCSV.

OpenCSV is a third party library which provides an API to work with CSV files. We’ll use readNext() method in CSVReader to read the records in the file:

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

To dig deeper and learn more about OpenCSV – we can check out our OpenCSV tutorial.

5. Conclusion

In this quick tutorial, we explored different ways to read CSV file into an array.

As always, the full source code of the examples is available over on GitHub.


Viewing all articles
Browse latest Browse all 4535

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>