java - 如何使用beanIO解析定长记录?

标签 java bean-io

我正在使用 beanio 来解析固定长度的内容(单字符串行)。我想使用基于注释的配置,但它不起作用。

以下代码可能有什么问题?

        StreamBuilder builder = new StreamBuilder("s1").addRecord(MyRecord.class);
        StreamFactory factory = StreamFactory.newInstance();
        factory.define(builder);

        Unmarshaller unmarshaller = factory.createUnmarshaller("s1");
        unmarshaller.unmarshal("123ASD");

@Record(minOccurs = 1, maxOccurs = 1)
public class MyRecord {

    @Field(at = 1, length = 3, minOccurs = 1)
    private String number;

    @Field(at = 4, length = 3, minOccurs = 1)   
    private String text;
}


org.beanio.InvalidRecordException: Invalid 'myRecord' record
 ==> Invalid 'number':  Expected minimum 1 occurrences
 ==> Invalid 'text':  Expected minimum 1 occurrences
    at org.beanio.internal.parser.UnmarshallingContext.validate(UnmarshallingContext.java:200)
    at org.beanio.internal.parser.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:204)
    at org.beanio.internal.parser.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:89)

最佳答案

我遗漏了以下内容:

new StreamBuilder("s1").format("fixedlength").addRecord(MyRecord.class);

关于java - 如何使用beanIO解析定长记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28676896/

相关文章:

java - 维护 JTextArea 滚动位置

命令行上的java相对路径与绝对路径

java - XMLEventReader Stax API 无法获取 JDK 1.8 中属性的名称和值

java - 如果 BeanIO 中的某些记录发生异常,则继续解析记录

java - BeanIO - 预计至少出现 1 次

java - BeanIO : Multiple records in single row of file

java - BeanIO 将带注释的类写入固定长度

java - 使用 Java HttpURLConnection 查询 Open MapQuest API 没有给出结果

java - Hadoop 2.6 - 范围分区器

java - 使用 BeanIO 映射 xml 元素及其属性