Java解析TXT的全过程
- <pattern value="dicts">
 - <object-create-rule classname="java.util.ArrayList" />
 - <pattern value="dict">
 - <object-create-rule classname="test.digester.Dict" />
 - <bean-property-setter-rule pattern="dictName" />
 - <set-next-rule methodname="add" />
 - </pattern>
 - <set-next-rule methodname="setDicts" />
 - </pattern>
 
- public void addDict(Dict dict) {
 - dictMap.put(dict.getDictName(),dict);
 - }
 
java 代码
通过两个接口描述文件的属性已经字段格式..
本例使用的是逗号分隔,如果出现其他分隔符怎么办?为此,定义了一个分隔符接口:LineSpliter
本例使用的是逗号分隔,如果出现其他分隔符怎么办?为此,定义了一个分隔符接口:LineSpliter
java 代码
getSpliterRegx()同于返回当前的分隔符,split()用户处理各行文本数据.
此处缺省实现了此接口,用于逗号分隔DefaultLineSpliter,定义如下:
此处缺省实现了此接口,用于逗号分隔DefaultLineSpliter,定义如下:
java 代码
这里使用apache的Lang包进行处理,没有使用JDK的String的split方法,因为jdk的实现会将末尾空的字段过滤掉,造成数据减少...
比如:如果行数据为aaa,bbb,,,,, 通过jdk的实现会返回aaa和bbb,而通过Lang包处理会返回包括后面空的字段.
2、接下来使用DigesterDigester包根据xml规则生成对象..
首先需要了解digester包的使用方法,这里简单的说一下:disgeter可以根据一定的规则将xml文件解析成一组对象...具体这里,我先定义
一个规则文件,
比如:如果行数据为aaa,bbb,,,,, 通过jdk的实现会返回aaa和bbb,而通过Lang包处理会返回包括后面空的字段.
2、接下来使用DigesterDigester包根据xml规则生成对象..
首先需要了解digester包的使用方法,这里简单的说一下:disgeter可以根据一定的规则将xml文件解析成一组对象...具体这里,我先定义
一个规则文件,
xml 代码
这就是一个简单的规则定义,具体含义这里不详细讲了,想了解的可以给我回帖...
接着定义缺省的文件元数据文件,格式如下:
最后实例化digester对象,加载规则文件,解析文件元数据文件,则会动态生成根据元数据文件解析的格式定义.
代码如下:GeneratorObject.createObject(){}
初始化CGLib
接着定义缺省的文件元数据文件,格式如下:
xml 代码
- <DefaultFileMeta name="com.xxx.file.DefaultFileMeta">
 - <field>
 - <beanname1>Codebeanname1>
 - <beanname2>Namebeanname2>
 - <beanname3>Datebeanname3>
 - <beanname4>Remakebeanname4>
 - field>
 - DefaultFileMeta>
 
代码如下:GeneratorObject.createObject(){}
初始化CGLib
java 代码
根据指定的目标类动态生成对象
java 代码
解析文本文件
java 代码
                    
                
                
            
浙公网安备 33010602011771号