开发者

Java Parsing Framework for complex CSV files

开发者 https://www.devze.com 2023-03-20 09:33 出处:网络
I need to parse complex (non fixed length) csv files to Java objects in order to compare its values. I first tried the Flatform Parsing Framework, i liked the approach of describing the values in an e

I need to parse complex (non fixed length) csv files to Java objects in order to compare its values. I first tried the Flatform Parsing Framework, i liked the approach of describing the values in an extra (xml) document. Maybe it's the right tool for simple csv (and also flat) files. Nevertheless my csv files contains lines that vary in quantity of fields - sometimes they span across multiple lines. There are also dependencies among those fields.

Here's a little sample: (each type has a certain amount of extra parameters)

    ; <COMMENTS (to be ignored)>
    <NAME>,<TYPE_A>,<DESCRIPTION>,<PARAMETER>
    <NAME>,<TYPE_B>,<DESCRIPTION>,<PARAMETER>,<PARAMETER>
    <NAME>,<TYPE_C>,<DESCRIPTION>,<PARAMETER>,<PARAMETER>,<PARAMETER>,<PARAMETER>
    <NAME>,<TYPE_D>,<DESCRIPTION>,<PARAMETER>,<PARAMETER>,<PARAMETER>,<PARAMETER>, -
                              <PARAMETER>,<PARAMETER>, -
                              <PARAMETER>,<PARAMETER>
    <NAME>,<TYPE_B>,<DESCRIPTION>,<PARAMETER>,<PARAMETER>
开发者_JAVA技巧    <NAME>,<TYPE_A>,<DESCRIPTION>,<PARAMETER>

So i need something to describe and parse the csv file in a more complex manner. I'm new to this, I've heard about parser generator - is that what I need?


Try OpenCSV (see http://opencsv.sourceforge.net/#what-features). It handles embedded carriage returns just fine.


One option is to use the Scanner class or you might want to check out the Spring Batch. Ive never actually used SB but given batch jobs often read from simple text files i believe i read it caters for this including all sorts of object mapping.


You may also try japaki

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号