Có ai biết thư viện nào tốt để chuyển đổi tệp phẳng sang các đối tượng Java không? Tôi tìm thấy flatworm nhưng tôi đang tìm kiếm các giải pháp thay thế.Chuyển đổi tệp phẳng sang các đối tượng Java
Trả lời
FFP - Flat file phân tích thư viện
http://jffp.sourceforge.net/
Bạn cũng có thể cung cấp cho một cố gắng để Fixedformat4j. Tôi thích cách tiếp cận chú thích và rất đơn giản để xác định định dạng trường tùy chỉnh.
nhanh update: giun dẹp vẫn chưa hoạt động khá lâu, có một ngã ba tên BeanIO: http://www.beanio.org/
Bạn muốn xem xét JRecordBind (Tôi tác giả của nó)
Không giống như những người khác, nó có thể phân tích cú pháp và tạo các tệp phẳng và nó sử dụng Lược đồ XML đơn giản (vì vậy bạn không phải tìm hiểu thêm một cú pháp cấu hình khác). Một số người dùng tái chế cùng một XSD để sản xuất cả tệp webservice và tệp phẳng.
ps: Tôi vừa mới chuyển mã để github
tôi đã không sử dụng này JFlat, Nhưng có vẻ như khung này hỗ trợ chuyển đổi từ tập tin phẳng để đối tượng Java.
Tương tự BeanIO và Jsefa cũng cung cấp API đơn giản và linh hoạt.
Bạn có thể thử với FlatPack - nhưng nó là OLD và các tài liệu không phải là tốt như JFlat hoặc BeanIO
Apache Camel có thành phần Flatpack cũng như từ 2.10 nó có BenaIO phần
Một lựa chọn khác, đó tôi đã viết rằng sử dụng Java chú thích là JFileHelpers - http://jfilehelpers.com
Một ví dụ về đậu chú thích:
@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;
}
Sau đó, tất cả các bạn phải làm là:
FileHelperEngine<Customer> engine =
new FileHelperEngine<Customer>(Customer.class);
List<Customer> customers =
new ArrayList<Customer>();
customers = engine.readResource(
"/samples/customers-fixed.txt");
Nếu đó là một cái gì đó giống như một CSV (hoặc bất kỳ tập tin phân cách) hoặc XML, nó tầm thường để đọc nó và tạo các đối tượng ra khỏi nó. Bạn có thể xây dựng trên định dạng tệp và những gì bạn đang cố gắng làm không? –
Tệp phẳng là một danh mục khá rộng. Tệp văn bản? Tệp CSV? Tệp đối tượng được tuần tự hóa? Có gì trong "tệp phẳng" – Gandalf
Có gì sai với Flatworm? –