FileReader.java
package fr.avenirsesr.portfolio.shared.infrastructure.utils;
import fr.avenirsesr.portfolio.interoperability.additionalskill.casoc.infrastructure.service.CsvCompetenceReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
public interface FileReader {
static <T> List<T> readCSV(String fileName, String separator, Function<String[], T> mapper) {
try (var inputStream = CsvCompetenceReader.class.getResourceAsStream(fileName);
var reader =
new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8))) {
return reader
.lines()
.skip(1)
.map(line -> line.split(separator))
.map(mapper)
.collect(Collectors.toList());
} catch (IOException | NullPointerException e) {
throw new RuntimeException("Erreur de lecture du fichier CSV", e);
}
}
}