2009-08-24 47 views
0

我得到了下一個問題。 我有一個二進制文件,我把它寫入系統的重要數據。 其中一個字段是時間,我使用DateTime.Now.ToString(「HHmmssffffff),格式爲微秒。這個數據(在字符串中)我轉換(ToCahrArray)(並在調試中檢查它是好的) ,它包含的時間有效直到微秒 然後我寫它並將其刷新到文件中當用PsPad打開它將二進制轉換爲Ascii時,我發現數據在這個字段中被破壞了,而其餘的該消息是罰款在C#中打印二進制文件的時間.net

代碼:。

void Write(string strData) { 
    char[] cD = strData.ToCharArry(); 
    bw.Write(c); //br is from type of BinaryWriter 
    bw.Flush(); 
} 
+0

爲什麼不將文本數據寫入文本文件? – 2009-08-24 16:35:33

回答

5

你在Unicode字符寫出的字節,而不是ASCII字節如果你想要的Ascii字節,您應該將其更改爲使用Encoding類。

byte[] data = Encoding.ASCII.GetBytes(strData); 
bw.Write(data); 

我強烈建議您閱讀Joel Spolsky's article on character sets and encoding。它可以幫助您瞭解當前的代碼無法正常工作。

+0

+1爲參考Joel的文章 - 它應該是必讀! – JMarsch 2009-08-24 16:39:44