Я пытаюсь создать (записать с данными) несколько файлов из нескольких hashMap.
Map<String, List<CSVRecord>> map = new HashMap<>();
List<CsvStructureEntity> listWithData = new ArrayList<>();
try {
Reader reader = new BufferedReader(new FileReader(file));
CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT
.withFirstRecordAsHeader()
.withIgnoreHeaderCase()
.withTrim());
for (CSVRecord csvRecord : csvParser) {
LOGGER.info("The parser read line ...");
// Accessing values by Header names
String line1 = csvRecord.get("line1");
String line2 = csvRecord.get("line2");
String lineId = csvRecord.get("lineId");
List<CSVRecord> list = map.getOrDefault(lineId, new LinkedList<CSVRecord>());
list.add(csvRecord);
map.put(lineId, list);
// Write map to new .csv files
String lineSeparator = System.getProperty("line.separator");
try (Writer writer = new FileWriter("/home/tmp/new_csv_file.csv")) {
for (Map.Entry<String, List<CSVRecord>> entry : map.entrySet()) {
writer.append(entry.getKey())
.append(',')
.append(entry.getValue())
.append(lineSeparator);
}
} catch (IOException ex) {
ex.printStackTrace(System.err);
}
String line3 = csvRecord.get("line3");
String line4 = csvRecord.get("line4");
String line5 = csvRecord.get("line5");
... (and so on until the 43rd line)
Мой исходный файл содержит 4 разных "lineId" (1,2,3,4). На основании того, что я написал, все записывается в один файл.Мне нужно записать все это в разные файлы (в разных 4 файлах), т.е. первый файл будет записан lineId = 1 и все строки для этого lineId, второй файл будет сопровождаться lineId = 2 и все строки для этогоlineId и т. д.
Может кто-нибудь сказать, что не так?Спасибо