Conversion de fichiers plats à des objets Java [fermé]
La solution
FFP - Bibliothèque d'analyse fichier plat http://jffp.sourceforge.net/
Autres conseils
Mise à jour rapide: flatworm n'a pas été actif pendant un certain temps, il y a une fourchette nommée BeanIO: http://www.beanio.org/
Une autre alternative, que j'ai écrit qui utilise annotations Java est JFileHelpers - http://jfilehelpers.com
Un exemple de haricot annoté:
@FixedLengthRecord()
public class Customer {
@FieldFixedLength(4)
public Integer custId;
@FieldAlign(alignMode=AlignMode.Right)
@FieldFixedLength(20)
public String name;
@FieldFixedLength(3)
public Integer rating;
@FieldTrim(trimMode=TrimMode.Right)
@FieldFixedLength(10)
@FieldConverter(converter = ConverterKind.Date,
format = "dd-MM-yyyy")
public Date addedDate;
@FieldFixedLength(3)
@FieldOptional
public String stockSymbol;
}
Alors tout ce que vous avez à faire est:
FileHelperEngine<Customer> engine =
new FileHelperEngine<Customer>(Customer.class);
List<Customer> customers =
new ArrayList<Customer>();
customers = engine.readResource(
"/samples/customers-fixed.txt");
Je n'ai pas utilisé JFlat , mais semble que ce cadre permet la conversion de fichier plat objet Java.
De même BeanIO et Jsefa fournit également une API simple et flexible.
Vous pouvez essayer avec FlatPack - mais il est vieux et les documents ne sont pas bons comme JFlat ou BeanIO
Apache Camel a Flatpack ainsi que de 2,10, il a BeanIO composant
Vous voulez envisager JRecordBind (je suis son auteur)
Contrairement à d'autres, il est capable à la fois analyser et créer des fichiers plats et il utilise le schéma XML ordinaire (de sorte que vous n'avez pas à apprendre une autre syntaxe de configuration). Certains utilisateurs recyclent même XSD pour produire à la fois webservice et la sortie des fichiers plats.
ps: J'ai récemment déplacé le code github
Vous pouvez également donner un essai à Fixedformat4j . J'aime l'approche des annotations et il est très simple de définir un format de champ personnalisé.