As you can pass any java.io.Reader
to the CsvReader
class, you can read CSV data from any source that
provides a Reader
or can be converted to a Reader
.
This includes reading from the classpath.
Example
In the following example, a CSV file is read from the classpath.
import java.io.FileNotFoundException ;
import java.io.IOException ;
import java.io.InputStreamReader ;
import java.nio.charset.StandardCharsets ;
import de.siegmar.fastcsv.reader.CsvReader ;
import de.siegmar.fastcsv.reader.CsvRecord ;
* Example for reading CSV data from a file in the classpath.
public class ExampleCsvReaderWithClasspathInput {
public static void main ( final String [] args ) throws IOException {
try ( CsvReader < CsvRecord > csv = CsvReader . builder () . ofCsvRecord ( readFromClasspath ( " /example.csv " )) ) {
csv . forEach ( System . out :: println ) ;
static Reader readFromClasspath ( final String name ) throws FileNotFoundException {
final var in = ExampleCsvReaderWithClasspathInput . class . getResourceAsStream ( name ) ;
throw new FileNotFoundException ( " Resource not found on classpath: " + name ) ;
return new InputStreamReader ( in, StandardCharsets . UTF_8 ) ;
You also find this source code example in the
FastCSV GitHub repository .