2012-02-04 110 views
1

如何將字符數組序列化爲文件?我這樣做的全部原因是,你不能只打開文件和編輯數據,但是我要告訴你的其他內容。我創建了一個字符數組,並將arr[0]設置爲'a',將arr[1]設置爲'b',將arr[2]設置爲'c'。然後我使用.NET來序列化數組。我運行它,打開該文件,它讀取此:
序列化數據

如前所述上面,我不希望有人剛打開文件和編輯數據,但是這清楚地表明這是可能的。

代碼:

arr[0] = 'a'; 
arr[1] = 'b'; 
arr[2] = 'c'; 

FileStream stream = new FileStream(Application.dataPath+"/testing.wld", FileMode.Create); 
BinaryFormatter bFormatter = new BinaryFormatter(); 

bFormatter.Serialize(stream, arr); 
stream.Close(); 

我該如何解決這個問題?謝謝。

+2

如果不希望字符可識別,則必須以某種方式對數據進行編碼。 – Bill 2012-02-04 02:04:31

回答

0

你不問關於序列化。您正在詢問有關混淆/ schiffering /更高級的解決方案。

如果你想在.NET中使用內置的序列化類,你將不得不實現你自己的(XML)編寫器/閱讀器 - 在這個函數中實現一個混淆的選擇例程並確保其爲1:1。

但它當然不會是「安全」的,只是延遲一段時間穿透者。

+0

原諒我的傲慢,但我想數據存儲爲字節,因此文件大小很小。我知道一個ANSCII字符是一個字節,但是對它進行編碼或者對它進行混淆,或者其他什麼都不是ANSCII字符。我想我問的是你可以有一個普通的文件和具有相同信息的編碼文件是相同的大小?也許我應該開始一個新的問題,但似乎很簡單。 – MrSplosion 2012-02-04 03:36:30

+0

schiffering不會。添加到文件大小。例如Byte1異或字節2仍然是一個字節大。 – stefan 2012-02-04 03:40:27