菜单
  

    3.1.2  设计思想
        基于该模块的特性,我们知道,在进行文本解析的时候,这里需要提供给模块一个文件,该模块通过对文件类型的分析,选择不同的文本解析器解析文件,最终返回给用户的便是文本的内容,即一个字符串便可以。
        这里面可以向外公布一个接口,为了实现更加良好的封装,这样就需要采用工厂模式进行开发。所谓工厂模式就是设计模式当中应用最为广泛的模式之一。它相当于语法中的new,但是它相对与new在于它能够更好的封装,只对外提供工厂和接口,用户不需要知道内部类型的调用过程。
        以本项目为例,可以对外只提供了一个接口和一个工厂,工厂内部实现对各个文本解析器的调度。首先实例化一个工厂,工厂对输入参数文件提取文件类型并且根据文件类型实例化不同的接口实现类,这些接口实现类都是一个超类的子类,继承超类的getTxt方法。这样,用户每次只需要根据工厂的createFileReader函数获取解析器,而不需要知道内部有关类名等各种信息。这也体现了软件开发的“不要跟陌生人说话”的原则。
        对于更为底层的不同类型的文件解析器,可以主要依靠poi等第三方包对其进行解析,至于更为底层的实现,通过查找资料是可以知道实现方法的。其中:
    1.    对于txt、cpp、h类型的文件,可以直接通过字符流读取,读取时指定“GBK”编码即可。
    2.    对于pdf类型的文件,需要使用pdfbox对其进行解析,其重要使用到的第三方包为PDFBox-0.7.3.jar。其中由于需要处理加密问题,需要导入bouncycastle的各个包。
    3.    对于其他的office类型的文件,主要采用POITextExtractor对其进行解析,其主要需要几个poi包:poi-3.7.jar。
    4.    对于rtf文档,可以采用RTFEditorKit对其进行解析。
    3.1.3  数据流程图
     
    图3.1.3.1 文本解析过程流程图
    3.1.4  对外接口
        文件解析子模块主要通过对文件的后缀名进行分析,然后通过工厂模式获取相应接口实现类的实例。其向外公开两部分:
        Com.dts.logic.filereader.DtsFileReader:该接口有一个方法,定义为public String getTxt(File file) throws Exception;其中输入为File文件,通过调用函数getTxt便可解析出文件的内容。
        Com.dts.logic.filereader.FileReaderFactory:该类便是工厂模式的工厂,其中有一个获取DtsFileReader实现类实例的方法:public DtsFileReader createFileReader(String fileName);该函数通过输入一个文件名,然后对文件名进行解析,最终输出一个DtsFileReader接口的实现类实例。
        外部其他模块在调用该模块的时候只要先创建一个FileReaderFactory,然后将文件名称传给函数createFileReader就能获取一个对应于该文件类型的文本解析器,然后通过该文本解析器所继承的getTxt方法,即可获得模块的输出,文件的内容。
        通过上述分析,可以看到利用工厂模式可以很好的将内部信息封装起来,对外界模块都是透明的。
    3.1.5  异常处理
        该模块主要是对被索引文件的操作,因此异常处理也常常都是围绕文件流的IO或者第三方包中的异常。具体异常信息举例如下:
    A.    IOException:由于文件解析的时候需要用到第三方包中提供的句柄或者直接通过文件流进行读取,因此文件的IO便有可能出错。比如在RtfReader的读取需要使用FileInputStream,该类的创建是以文件作为输入,流在使用之后需要关闭,调用.close()方法可能会导致IOException。
  1. 上一篇:语音信号采集程序设计+文献综述
  2. 下一篇:面向jPDL的工作流流程定义工具设计
  1. Lucene桌面全文搜索引擎系统的分析与设计

  2. 桌面云中虚拟机集中入域的研究和实现

  3. 互联网内容形式的发展对搜索引擎的影响

  4. 基于Lucene的桌面搜索引擎的研究与实现

  5. 安卓系统桌面启动器的设计与实现

  6. 基于Lucene的站内搜索引擎设计+源代码

  7. Cocos2d基于C++的桌面平台游...

  8. 酸性水汽提装置总汽提塔设计+CAD图纸

  9. 大众媒体对公共政策制定的影响

  10. java+mysql车辆管理系统的设计+源代码

  11. 当代大学生慈善意识研究+文献综述

  12. 杂拟谷盗体内共生菌沃尔...

  13. 乳业同业并购式全产业链...

  14. 十二层带中心支撑钢结构...

  15. 电站锅炉暖风器设计任务书

  16. 河岸冲刷和泥沙淤积的监测国内外研究现状

  17. 中考体育项目与体育教学合理结合的研究

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回