我要豆子。当记录不存在于文件(空白文件)时,Io映射到through异常。但这并没有发生。虽然它有验证发生="0+"就位。minOccurs=1 maxOccurs=unbounded
我的映射文件
<?xml version="1.0" encoding="UTF-8"?>
<beanio xmlns="http://www.beanio.org/2012/03">
<stream name="Records" format="fixedlength" strict="true">
<record name="SampleRecord" class="com.test.SampleRecord" **occurs="0+"**>
<field name="mobileNumber" type="string" position="0" length="10" regex="[0-9]*" required="true"/>
<field name="alternateMobileNumber" type="string" position="10" length="20" regex="[0-9]*" required="false"/>
</record>
</stream>
</beanio>
你可以试试这个mapping.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<beanio xmlns="http://www.beanio.org/2012/03"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.beanio.org/2012/03 http://www.beanio.org/2012/03/mapping.xsd">
<stream name="Records" format="fixedlength" strict="true" minOccurs="1">
<record name="SampleRecord" class="com.test.SampleRecord" occurs="0+">
<field name="mobileNumber" type="string" position="0" length="10" regex="[0-9]*" required="true"/>
<field name="alternateMobileNumber" type="string" position="10" length="20" regex="[0-9]*" required="false"/>
</record>
</stream>
</beanio>
注意stream
元素上的minOccurs="1"
属性。文档是这样说的:
minOccurs -必须读取记录布局的最小次数从输入流。默认为0。
因此,将minOccurs
更改为1会导致BeanIO抛出一个异常,并将空字符串作为输入。