Pergunta

Alguém sabe de boas bibliotecas para converter um arquivo plano em objetos Java? eu encontrei Flatworm Mas estou procurando alternativas.

Foi útil?

Solução

FFP - Biblioteca de análise de arquivo plano
http://jffp.sourceforge.net/

Outras dicas

Atualização rápida: Flatworm não está ativo há um bom tempo, há um garfo chamado Beanio:http://www.beanio.org/

Outra alternativa, que escrevi que usa as anotações Java é o jfilehelpers - http://jfilehelpers.com

Um exemplo de feijão anotado:

@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;
}

Então tudo que você precisa fazer é:

  FileHelperEngine<Customer> engine =
      new FileHelperEngine<Customer>(Customer.class);
  List<Customer> customers =
      new ArrayList<Customer>();

  customers = engine.readResource(
      "/samples/customers-fixed.txt");

Eu não usei isso Jflat, Mas parece que essa estrutura fornece conversão de arquivo plano em objeto Java.

De forma similar Beanio e JSEFA Também fornece uma API simples e flexível.

Você pode tentar com Flatpack - mas é velho e os documentos não são bons como jflat ou beanio

Apache Camel tem Componente Flatpack bem como de 2.10 tem Componente Beanio

Você gostaria de considerar Jrecordbind (Eu sou seu autor)

Ao contrário de outros, é capaz de analisar e criar arquivos planos e usa esquema XML simples (para que você não precise aprender mais uma sintaxe de configuração). Alguns usuários reciclam o mesmo XSD para produzir o WebService e a saída de arquivos planos.

PS: Eu movi recentemente o código para Github

Você também pode tentar FILLFORMAT4J. Gosto da abordagem das anotações e é muito simples definir um formato de campo personalizado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top