[英]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.