簡體   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