Обработка файла CSV на картеиспользуя Java 8 - PullRequest
1 голос
/ 10 ноября 2019

Я хочу собрать файл CSV в карту с ключом карты, являющимся первой строкой строки (строка [0]), а значением карты в виде строкового массива остальной части строки, исключая строку [0].

.collect (Collectors.toMap (line -> line [0],));

не уверены, что вводить в качестве второго параметра метода .toMap, чтобыдостичь этого

public Map<String,String[]> readFile() {

        try {
            Path path = Paths.get("src/CSV/map.csv");
            BufferedReader reader = new BufferedReader(Files.newBufferedReader(path, Charset.forName("UTF-8")));
            return reader.lines()
                    .map(line -> line.split(","))
                    .collect(Collectors.toMap(line ->line[0], ));
        } catch (IOException e) {
            throw new UncheckedIOException(e);
        }

Ответы [ 2 ]

3 голосов
/ 10 ноября 2019

Или используйте это:

.collect(Collectors
   .toMap(line -> line[0], line-> Stream.of(line).skip(1).toArray(String[]::new)));
1 голос
/ 10 ноября 2019

использование Arrays.copyOfRange:

.collect(Collectors.toMap(line -> line[0], line->Arrays.copyOfRange(line, 1, line.length)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...