我有一个问题写入二进制文件。C#,写入二进制数据
//This is preparing the counter as binary
int nCounterIn = ...;
int nCounterTotalInNetwork = System.Net.IPAddress.HostToNetworkOrder(nCounterIn);
byte[] byteFormat = BitConverter.GetBytes(nCounterTotalInNetwork);
char[] charFormat = System.Text.ASCIIEncoding.ASCII.GetChars(byteFormat);
string strArrResults = new string(charFormat);
//This is how writing it to a file using a BinaryWriter object
m_brWriter.Write(strArrResults.ToCharArray());
m_brWriter.Flush();
问题是它写入文件不正确。大部分时间它正确地写入信息,但一旦它超过127
,它会写入63
(3F
错误的表示),直到255
。
然后重复这个错误,直到512
。
错误是什么?
的问题是,我需要此计数器在一个冲洗添加到消息,并打印出来,当我试图打印它被打印为8个字节,而不是4和错误值。我在打印前添加了: //这是准备计数器为binaryint nCounterIn = ...; int nCounterTotalInNetwork = System.Net.IPAddress.HostToNetworkOrder(nCounterIn); byte [] byteFormat = BitConverter.GetBytes(nCounterTotalInNetwork);字符串strV = BitConvertor.ToString(byteFormat); strV + = //消息字符串DATA。 m_brWriter.Write(strV); m_brWriter.Flush(); –