kullanarak haritaya csv dönüştürmek. Eğer, ben, dizeleri akışı oluşturarak virgül her satırı sınırlayan ve bir dize dizisi dönüştürülmesi ve son olarak endeks 1.nasıl iki sütunlu CSV dosyası dönüştüren basit ayrıştırma util oluşturmak ve bir harita koydu çalışıyorum Java 8 Akışı
için endeks 0 ve değer anahtarı eşleme ediyorum görebileceğiniz gibipublic Map<String, String> getMapFromCSV(final String filePath) throws IOException {
return Files.lines(Paths.get(filePath))
.map(line -> line.split(","))
.collect(Collectors.toMap(line -> line[0], line -> line[1]));
}
Ben bu testi çalıştırdığınızda nedense
@Test
public void testGetMapFromCSV() throws IOException{
actual = util.getMapFromCSV(filePath).get("AL");
expected = "ALABAMA";
assertEquals(expected, actual);
}
, gerçek değeri null. Geçersiz bir dosyaPaketini devre dışı bıraktım çünkü başka bir birim testinde iyi çalışıyor ve anahtar değer CSV'de mevcut. Birkaç saatliğine bakıyorum, belki birileri benim hatama işaret edebilir.
Ayrıca, Java 8 için oldukça yeni, bu yüzden herkes bu yazı daha iyi/daha temiz yolu biliyor, ben geribildirim takdir ediyorum.
Burada bir dosya tanıtıcısını sızdırıyorsunuz. Files.lines() ', try-with-resources ifadesinde açılmalıdır. – fge
Dosyada boşluk var mı? – rgettman
'null' Mayıs' (anahtar) map.get '' haritası key' bulamadık düşündürmektedir. Util.getMapFromCSV (filePath) 'ile döndürülen haritanın tamamını yazdırmayı deneyin. – Pshemo