2016-04-12 12 views
1

Örneğin benim girdi csv dosyası içerir:ortak apache kullanarak java satırları traversing olmayan CSV dosyasından bir sütunun değerlerini nasıl okunur?

A B  C  D  E 
10 ab a1 b1  ab1 
20 cd c1 d1  cd1  
30 ef e1 f1  ef1 
40 gh c1 h1  gh1 

Benim çıkışı: Ben mümkün duyuyorum

A 
10 
20 
30 
40 

Her satırı geçerek yapın. Ama ben öyle istemiyorum. Benim csv'de yüzbinlerce kayıt var, bu yüzden A'nın tüm sütun değerlerini bir kerede istiyorum. Sadece apache ortak csv kullanmak istiyorum.

+1

Kısa cevap: hayır Uzun cevap: dosya akışı (Apache IO örneği http://www.baeldung.com/java-read-lines-large-file) – cmaynard

cevap

2

ya da bu şekilde bütün satırları okumadan sadece bir CSV dosyasının ilk sütununu okumak için hiçbir yolu yoktur. Bu, sabit kayıt boyutları olmayan bir metin dosyasıdır. her kayıt için byte sabit boyutta ikili bir dosya için

Bu durum, örneğin, olurdu RandomAccessFile ile. Ama bir metin ile sütun A

sonraki satırın başlangıcını ve sonraki alanı bulmak için satırın sonuna aramak için her zaman var dosyasını Ama bu çizgiyi okurken büyük bir sorun olduğunu düşünmüyorum satır satırında ve istenmeyen sütun değerlerini bellekte tutmayın. Biz .csv dosyalarını okurken

0

Genellikle, CSVRecord olsun. İlk sütunu almak için aşağıdaki kodu kullanabilirsiniz. Ama Apache CSV dahili tüm sütunları Ayrıştırma ve CSVRecord olarak dönecektir.

 Reader in = new FileReader("input1.csv"); 
     Iterable<CSVRecord> records = CSVFormat.EXCEL.parse(in); 
     for (CSVRecord record : records) { 
      System.out.println(record.get(0)); 
     } 
İlgili konular