我有以下代碼:從字節[]轉換爲串
using (BinaryReader br = new BinaryReader(
File.Open(FILE_PATH, FileMode.Open, FileAccess.ReadWrite)))
{
int pos = 0;
int length = (int) br.BaseStream.Length;
while (pos < length)
{
b[pos] = br.ReadByte();
pos++;
}
pos = 0;
while (pos < length)
{
Console.WriteLine(Convert.ToString(b[pos]));
pos++;
}
}
的FILE_PATH是正被讀取包含該路徑二進制文件常量字串。 二進制文件是整數和字符的混合。 整數爲1個字節,每個字符以2個字節寫入文件。
例如,文件中有如下數據:
1HELLO HOW ARE YOU45YOU正在尋找偉大//等
請注意:每個整數與字符的它後面的字符串相關聯。所以1與「你好嗎」和45「你看起來很棒」等相關。
現在二進制寫入(我不知道爲什麼,但我不得不忍受這一點),使得「1」將只需要1個字節,而「H」(和其他字符)都需要2個字節。
因此,這裏是什麼文件實際上包含:
0100480045..and等 繼承人的故障:
01是整數1 0048的第一個字節是「小時2個字節'(H是48進制) 0045是用於2個字節‘E’(E = 0×45)
等.. 我希望我的控制檯打印人類可讀的格式出此文件的:即我想它打印出「1 HELLO HOW ARE YOU」,然後「45你看起來很棒」等等。 。
是我在做什麼正確的嗎?有一種更簡單/有效的方法嗎? 我的行Console.WriteLine(Convert.ToString(b [pos]));什麼都不做,只是打印整數值而不是我想要的實際字符。文件中的整數是可以的,但是如何讀出字符?
任何幫助將不勝感激。 感謝
語言? – mkoryak 2009-08-20 21:44:03
我刪除了我的答案 - 那個人認爲是誰決定了這種格式? :boggled: – 2009-08-20 21:47:19
整數域如何與字符串區分?字符可以在代碼點U + 00FF之上嗎?整數是「0」嗎?整數是有符號還是無符號? – outis 2009-08-20 22:06:58