项目需求是这样的;不同的企业客户提供的txt文本数据不同,比如下面两种格式1.txt2,4717336
-- 上面这行必须放在第一行,数据依次为:记录总数(不包括首行和注释行),到账金额总计
-- 供款确认日期,年金计划号,年金计划名称 ,到账金额
09/30/2005 , 000001,企业年金集成计划A , 24408
09/30/2005 , 000001,企业年金集成计划B , 4692928
===============================================================================
2.txt-- 供款确认日期,年金计划号,年金计划名称 ,到账金额
09/30/2005 , 000001,企业年金集成计划A , 24408
09/30/2005 , 000001,企业年金集成计划B , 4692928
这只是其中两中,文本格式可能有很多种。现在的想法是把TXT文件格式定义记录在数据库,然后不同文件上传后,去取读取格式,按预定义的格式来读取文件,并做校验。 但现在理不清该从那里下手,感觉这个自由度太高,没办法定义好一个通用的方法。那位大侠有类似经验,忘指教。
-- 上面这行必须放在第一行,数据依次为:记录总数(不包括首行和注释行),到账金额总计
-- 供款确认日期,年金计划号,年金计划名称 ,到账金额
09/30/2005 , 000001,企业年金集成计划A , 24408
09/30/2005 , 000001,企业年金集成计划B , 4692928
===============================================================================
2.txt-- 供款确认日期,年金计划号,年金计划名称 ,到账金额
09/30/2005 , 000001,企业年金集成计划A , 24408
09/30/2005 , 000001,企业年金集成计划B , 4692928
这只是其中两中,文本格式可能有很多种。现在的想法是把TXT文件格式定义记录在数据库,然后不同文件上传后,去取读取格式,按预定义的格式来读取文件,并做校验。 但现在理不清该从那里下手,感觉这个自由度太高,没办法定义好一个通用的方法。那位大侠有类似经验,忘指教。
abstract class TextReader{
//这里有一大堆方法,这些方法可以调用doReadText()方法来作处理
public void doSomething(){
doReadText();
....
}
abstract protected void doReadText();//这是一个抽象方法
}
然后对应每一种格式的text来继承。
class CompanyBTextReader extends TextReader{
protected void doReadText(){
//实现自己的读法
}
}
class CompanyCTextReader extends TextReader{
protected void doReadText(){
//实现自己的读法
}
}
使用的时候:
TextReader reader = new CompanyATextReader();
reader.doSomething();//客户端感觉不到用的是哪个读取策略。
TextReader reader = new ComapanyBTextReader();
reader.doSomething();设计模式之模版模式
1、读各种TXT文件:写一个抽象类,定义好通用的TXT文件读取方法,然后针对不同的TXT文件衍生不同的FileParse读取。2、按行绑定数据到DTO对象中,并做验证3、每1000行进行数据提交不知道这样的思路对不对,那位有具体实现吗?