2014-03-02 27 views
2

假設這裏唯一的區別是Binary Reader/Writer對字符串使用固定長度編碼是否正確,因此可能效率較低?對於字符串數據,使用TextReader/Writer而不是Binary Reader/Writer有什麼好處?

+2

它們是不同類型的不同目的。你想做什麼? –

+0

據我瞭解,我可以使用二進制讀/寫器來處理文本文件(目前我正在使用其中的一堆文件)。只是想知道爲什麼我會需要一個TextReader/Writer來代替。無論哪種情況,我想將數據加載到一個字符串中,對其進行修改並寫回。 –

+3

對於* binary *文件(即名稱),您通常會使用BinaryReader/BinaryWriter,即使它們也可能包含文本。如果你只是*處理文本,你應該使用'TextReader' /'TextWriter',例如'StreamReader' /'StreamWriter'。請注意,當您調用'BinaryWriter.WriteString'時,它會添加一個長度前綴 - 結果將不是純文本文件。你*可以*重複使用'WriteChars',但那會更加尷尬。 –

回答

4

否存在其他差異的剷鬥負載,例如,讀取和寫入,編碼......基本上與文本有關的「輔助」功能。

2

區別在於普通文本文件未包含長度前綴。如果您正在編寫一個旨在以文本形式讀取的文件:請使用TextWriter。你可能會認爲「啊,BinaryWriter是二進制的」,但事實並非如此:BinaryWriter和BinaryReader是相互配對的,但是在二進制文件中寫入文本數據沒有「通用」規範。它完全取決於文件格式/協議,並且在大多數二進制情況下BinaryWriter沒有任何用處。更常見的情況下,您只是在處理二進制數據時使用Stream。

相關問題