Macchiatow
Macchiatow

Reputation: 607

Parse key-value text file using camel-bindy or beanio

I have an option to use either bindy or beanIO camel components to parse a csv file. Besides this csv there is dat (txt) file which contains key-value. Is it possible to parse this file to Map using one of mentioned libraries?

Upvotes: 0

Views: 1684

Answers (1)

Pith
Pith

Reputation: 3794

The bindy component can unmarshall a csv file into an Object, not directly in a Map. Here is the response of a related question by Claus Ibsen. It seems that is the same for beanIO.

However you can use the CSV component of Camel which will transform your file into a List<List<String>>.

Here is more info on bindy (documentation on the Camel site).

You have just to declare a DataFormat:

DataFormat bindy = new BindyCsvDataFormat("com.acme.model");

And then use it like this:

from("file://inbox")
  .unmarshal(bindy)
  .to("direct:whatYouWant");

The parameter "com.acme.model" correspond to the package where you define your model. Camel bindy provide a lot of option to configure the binding I encourage you to see the doc for more details, but a basic model will look like this:

@CsvRecord(separator = ",")
public class Order {

    @DataField(pos = 1)
    private int orderNr;

    ...
}

Upvotes: 2

Related Questions