我有一个案例,我需要读取一个包含近100000个逻辑记录的平面文件。每个逻辑记录由nx128个字符部分组成。即A型:3x128,B型:4-5 X 128等,其中最大可能n为6。
应用程序必须读取文件并处理记录。问题是'n'只有在我们读取每个nx128分区的前52个字符时才能确定。
您能否建议我可以重复使用的任何设计模式或任何有效的算法来执行此操作?
注意:1。性能是一个重要的标准,因为应用程序需要每天处理数千个这样的文件。 2.数据不是由行分隔的。它是一个像字符串
的长字符串答案 0 :(得分:1)
除非您可以更改格式,否则必须解决它。
您可以为每个文件创建一个索引,但是您必须阅读一次才能构建索引(但这样可以节省多次这样做)
答案 1 :(得分:1)
您可以采用主工作(或主从)模式,其中主线程负责读取数据的前52个字符以确定记录的长度。然后,主设备可以将读取和处理记录的实际工作推迟到工作线程,并再次移动到下一个记录以仅读取前52个字符。每个工作人员将负责(重新)打开文件并处理特定范围的字符;需要向工人提供这些信息。
因为,我还没有看到文件的结构,我只能发布一些可能的限制或担忧,让实施者思考: