문제
이진 파일에 쓸 문제가 있습니다.
//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
.
버그는 무엇 일 수 있습니까?
해결책
7 비트 인 ASCII로 인코딩하기 때문에 8 비트를 차단하여 0으로 설정하기 때문입니다.
왜 이렇게하고 있습니까? 나는 당신이 거기에서하고있는 일을 돌아 다니려고 노력하고 있습니다.
인코딩하는 대신 얻는 바이트 배열을 단순히 작성하지 않는 이유는 무엇입니까?
다시 말해,이 코드를 사용하지 않는 이유는 무엇입니까?
//This is preparing the counter as binary
int nCounterIn = ...;
int nCounterTotalInNetwork = System.Net.IPAddress.HostToNetworkOrder(nCounterIn);
byte[] byteFormat = BitConverter.GetBytes(nCounterTotalInNetwork);
m_brWriter.Write(byteFormat);
m_brWriter.Flush();
제휴하지 않습니다 StackOverflow