2017-10-12 6 views
0

をロードするときに、私はこのJsefa - CSVファイル

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ライブラリとそのコンテンツをロードしようとしています今

Name,Age 
FirstPerson,22 
SecondPerson,33 

形式以下でCSVファイルを持っている列名をスキップコンソールへ

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();