我有一個100MB的磁盤文件(可以高達300MB)。有空值和一些其他控制字符不應該在那裏。起初,我將字符串讀入內存,然後通過Char重新讀取它,然後刪除有問題的Chars,並將乾淨的東西放入一個StringBuilder中,然後在其上做一個ToString。高效地從FILE中刪除一些ASCII碼?
當然使用太多內存。我需要弄清楚如何去除磁盤上的壞ASCII值。也許(.NET 4)內存映射文件流是正確的(我前面從Memory Mapped File to Read End of File?檢查了這一點)?
所有的想法讚賞。謝謝。
你需要刪除和重新排序文件,或者你可以用空格替換壞字符以保持相同長度? – 2012-01-09 22:18:41
我可以用String.Empty替換不好的字符,因爲它們大多是空字符和製表符。 – Snowy 2012-01-09 22:22:39
爲什麼你不直接寫入輸出文件?沒有理由一次將整個輸出存儲在內存中。 – 2012-01-09 22:44:10