2017-01-03 17 views
0

BinaryReader 이진 파일에서 문자를 읽을 때 문자로 읽을 수없는 형식이 잘못된 데이터를 자주 접하게됩니다. 나는 을 던졌습니다.유효하지 않은 문자 감지

비용이 많이 드는 작업없이 처리 할 수 ​​있도록 다음 문자가 예외를 throw 할 때 (예외가 발생 함) 대신 읽으려고 할 때 어떤 방법으로 예상 할 수 있습니까?

BinaryReader.ReadChar();

입력하게됩니다 ArgumentException가 발생한다?

+0

[documentation] (https://msdn.microsoft.com/en-us/library/system.io.binaryreader.readchar (v = vs.110) .aspx)는 대신'ReadChars '를 사용하도록 제안합니다. – juharr

+0

알아요,하지만 하나의 문자를 읽을 때 똑같은 예외를 던지고있었습니다 ... – Karlovsky120

답변

0

아, 그냥 그것을 알아 냈 :

char next = (char)reader.ReadByte(); 

if (Char.IsSurrogate(next)) { 
    return "Non-valid char value"; 
} 

가 더 나은 솔루션을 게시하시기 바랍니다.