最近在編寫一個網絡功能,需要將一個文件內容傳遞到客戶端并將改內容以文件形式保存下來。由于文件內容是個加密文件且采用了二進制形式于是客戶端就采用了QDataStream這個對象來保存文件。粗略的測試下來沒有什么問題,可是在獲取寫入的文件是否發現寫入的文件讀取出來內容不正確。經過一番折騰最終發現是QDataStream這個對象引起的問題。原來是我在打開文件的時候加上了QIODevice::Text 這個標識引起的,發現加了這個標識后寫入文件都會把原來的\0轉換成兩個字符寫入,因此寫入的文件內容就無端多一個字符處理,這樣在反向解碼就會出現問題。這問題一定要牢記下次不用再折騰了。