Czy ktoś wie o dobrych bibliotekach do konwersji płaskiego pliku na obiekty Java? Znalazłem flatworm, ale szukam alternatyw.Konwersja płaskiego pliku na obiekty Java
Odpowiedz
FFP - Płaski plik parsowania biblioteki
http://jffp.sourceforge.net/
Można również spróbować do Fixedformat4j. Podoba mi się podejście do adnotacji i bardzo łatwo jest zdefiniować niestandardowy format pola.
Szybka zmiana: flatworm nie działa już od dłuższego czasu, jest widelec nazwie BeanIO: http://www.beanio.org/
Chcesz rozważyć JRecordBind (jestem jego autorem)
W przeciwieństwie do innych, potrafi zarówno parsować, jak i tworzyć płaskie pliki i używa zwykłego schematu XML (więc nie musisz się uczyć kolejnej składni konfiguracji). Niektórzy użytkownicy przetwarzają ten sam XSD w celu generowania zarówno danych wyjściowych usługi sieciowej, jak i plików płaskich.
ps: Ja niedawno przeniósł kod do github
Nie używałem tego JFlat, ale wydaje się to ramowa zapewnia konwersję z płaskiego pliku do obiektu Java.
Podobnie BeanIO i Jsefa zapewnia również prosty i elastyczny interfejs API.
Można spróbować z FlatPack - ale to jest stary i docs nie są dobre jak JFlat lub BeanIO
Apache Camel posiada komponent FlatPack jak również z 2.10 ma BenaIO komponentu
Inną alternatywą, że pisałem, że używa Java adnotacje jest JFileHelpers - http://jfilehelpers.com
przykładem fasoli adnotacjami:
@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;
}
Następnie wszystko co musisz zrobić, to:
FileHelperEngine<Customer> engine =
new FileHelperEngine<Customer>(Customer.class);
List<Customer> customers =
new ArrayList<Customer>();
customers = engine.readResource(
"/samples/customers-fixed.txt");
- 1. Python - Konwersja CSV na obiekty - Code Design
- 2. Konwersja ciągów na obiekty pływające w DataFrame
- 3. Konwersja pliku .jks na p12
- 4. Konwersja Java na iOS
- 5. Konwersja elementów DOM w obiekty
- 6. Konwersja JavaScript na język Java
- 7. Konwersja Java/Android na kolor
- 8. Konwersja Java na okresy Scala
- 9. Java: konwersja długa na Datownik
- 10. Konwersja pliku AssetInputStream na FileInputStream
- 11. Odwzorowywanie obiektów XML na obiekty Java
- 12. Tworzenie ruchomego płaskiego pliku dziennika przy użyciu biblioteki Enterprise
- 13. Konwersja programu konsoli Java na aplikację Webapp
- 14. Konwersja Java na liczbę całkowitą do szesnastkowej
- 15. Konwersja String na int tablicy w java
- 16. Konwersja strumienia int na char w java
- 17. Konwersja mapy Java na mapę JavaScript
- 18. Konwersja z bajtu na int w java
- 19. Java Konwersja na długo w walucie
- 20. Zapisywanie/otwieranie Java Obiekty plików
- 21. Konwersja pliku HtmlDocument.DomDocument na ciąg znaków
- 22. Konwersja pliku XML na ciąg znaków
- 23. Konwersja wielostronicowego pliku PDF na pojedynczy obraz
- 24. Konwersja pliku .rptproj z VS2005 na VS2008
- 25. Batch Konwersja pliku PDF na XPS
- 26. Konwersja pliku FileObject do pliku
- 27. Obiekty JSP, JavaScript i Java
- 28. Czy Java optymalizuje niezmienne obiekty?
- 29. Jak porównać dwa obiekty Java
- 30. Konwersja Java do pliku .app dla MacOSX przy użyciu JarBundler
Jeśli jest coś takiego jak CSV (lub ograniczonego pliku) lub XML, to trywialne, aby przeczytać go i tworzyć obiekty z niego. Czy mógłbyś rozwinąć format pliku i to, co próbujesz zrobić? –
Płaski plik to dość szeroka kategoria. Plik tekstowy? Plik CSV? Plik Serialized Object? Co jest w "płaskim pliku" – Gandalf
Co jest nie tak z Flatwormem? –