有一个字符串输入,只由数字组成,即整数.如何编写一个接受除数字1,2和25之外的所有数字的正则表达式?
我想在BeanIO 的记录标识(支持正则表达式)中使用它来跳过一些具有特定值的记录.
我达到了这一点^(1|2|25)$,但我希望与此相符.
我正在关注这个简单的教程http://beanio.org/
最后说你可以使用带注释的类而不是XML文件.我这样做,在我的factory.load()传递值与我的注释类的名称.我得到了org.xml.sax.SAXParseException.我相信这是因为它期待一个XML文件.
我需要使用什么方法来传递带注释的类而不是XML?
我正在尝试使用 beanio 将带注释的类写入固定长度文件。所有课程都已注释,但我遇到异常
“记录‘团队’、流‘Tm’中的字段‘员工’无效:找不到类型‘com.mycompany.bio.Employee’的类型处理程序”
下面是我的源代码
public static void main(String[] args) {
StreamFactory factory = StreamFactory.newInstance();
StreamBuilder builder = new StreamBuilder("Tm")
.format("fixedlength")
.parser(new FixedLengthParserBuilder())
.addRecord(com.mycompany.bio.Team.class);
factory.define(builder);
Employee e1 = new Employee("EmpF1", "EmpL1", "Developer", "1", new Date());
Employee e2 = new Employee("EmpF2", "EmpL2", "Developer", "2", new Date());
Team team = new Team();
team.setTeamName("Great Team");
team.getEmployees().add(e1);
team.getEmployees().add(e2);
BeanWriter out = factory.createWriter("Tm", new File("C:\\Users\\user\\Desktop\\tm.dat"));
out.write(team);
out.flush();
out.close();
}
Run Code Online (Sandbox Code Playgroud)
团队类别:
@Record(minOccurs = 1)
public class Team {
// @Segment(collection = ArrayList.class, minOccurs = 0, maxOccurs …Run Code Online (Sandbox Code Playgroud) 我有一个固定长度的流.我想将编码设置为Windows-1252或latin1.
我怎样才能做到这一点?
通过XML会更好,但如果代码是唯一的方式,它也可以.
我正在使用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)
Run Code Online (Sandbox Code Playgroud)