繁体   English   中英

在内存中表示文本的最佳方式

[英]Best way to represent text in memory

我有两个继承自公共基类的类。

这些专用类中的每一个都从数据库加载一些数据,对其进行处理,然后将该信息保存在文本文件中。

第一类将信息表示为XML文档。 第二类将其信息存储为带有分隔符的分隔符的文本文件。

我想做的是在基类中编写一个可以由两个类使用的Save方法。 由于所有类都将写入文本文件,我正在考虑使用一种通用表示将其数据存储在内存中 - 例如,第一个类将XmlDocument转换为该公共表示。

在内存,字符串,流中存储它的最佳方法是什么?

谢谢

既然XML是您提到的两种格式中的更丰富的,并且相对易于操作,为什么不具有单个表示形式和2个save方法呢?

如果派生类以非常不同的方式表示数据,则不要为它们实现常用的Save方法,这些类最了解如何保存它们的数据。 使Save()抽象,并让每个子类实现保存。

进行Save()可能有一些共同点(例如,打开实际文件,错误处理)。 因此,让您的基类提供一个Save()方法,该方法负责调用虚拟的Save(System.IO.TextWriter writer); 您的每个子类实现的方法。

如果输入数据是统一结构化的,您可以将其干净地存储在DataSet ,也可以使用TextReader输入上的DataSet.ReadXml直接从XML加载。

如果只有一种类型的记录输出到分隔的文本文件,则可以直接使用DataTable - DataSet封装多个DataTable

另一种方法是直接转换XML到CSV(逗号分隔符=在这里,你可以使用任何你想要的,虽然)使用XSLT如这里的@Welbog。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM