2
我有一個FileStream
連接到一個xml文件,我想直接讀入SHA512對象以便爲校驗和計算散列(而不是安全用途)。計算校驗和時的流鏈接:避免內存問題
的問題是雙重的:
- 我想省略一些在XML節點,
- 文件是相當大的,我寧願不整件事裝入到內存
我可以將整個文件讀入xml結構,刪除節點,然後將其寫入一個流,然後插入SHA512.ComputeHash
,但這會導致性能下降。我寧願能夠以某種方式刪除節點作爲流上的操作,然後以某種方式將流連接在一起成爲可傳遞到SHA512.ComputeHash(Stream)
的單個流。
我該如何做到這一點?
「large」是源XML嗎? – 2013-03-26 19:01:23
也許這樣?用XmlReader讀取XML文件,將所有需要的節點寫入一個XmlWriter,該XmlWriter寫入更新散列的流。 – dtb 2013-03-26 19:01:27
@RichardTurner:源XML目前大約有30 MB,但讓我們假設它可能比這個大得多。是的,我知道這可能是在某些情況下的微觀優化 - 請假設我知道我在做什麼。 – skybluecodeflier 2013-03-26 19:05:03