2017-10-12 122 views
0

時跳過列名我有CSV文件格式如下Jsefa - 加載CSV文件

Name,Age 
FirstPerson,22 
SecondPerson,33 

現在我想用這樣的

Deserializer deserializer = CsvIOFactory.createFactory(Person.class).createDeserializer(); 
deserializer.open(new FileReader(csvName)); 

while (deserializer.hasNext()) { 
    Person person = deserializer.next(); 
    System.out.println("person = " + person); 
} 

此打印以下結果jsefa庫加載其內容到控制檯

person = Person (name=Name, age=Age) 
person = Person (name=FirstPerson, age=22) 
person = Person (name=SecondPerson, age=33) 

我不知道是否有正確的方法跳過輸入文件的第一行。因此,我只能獲得FirstPerson和SecondPerson人員,而不能獲得姓名。

至於現在,我能想到的只有while循環

if (deserializer.hasNext()) { 
    deserializer.next(); 
} 

之前添加此代碼,但它並沒有看起來非常好。

感謝您的想法!

回答

0

您應該可以使用HeaderAndFooterFilter來實現此目的。

像這樣的東西來設置解串器:

CsvConfiguration config = new CsvConfiguration(); 
config.setLineFilter(new HeaderAndFooterFilter(1, false, true)); 
Deserializer deserializer = CsvIOFactory.createFactory(config, Person.class) 
             .createDeserializer();