0
当从二进制文件中读取字符BinaryReader
时,我经常遇到无法读取为字符的格式错误的数据。我得到了一个ArgumentException
抛出。检测无效字符
有什么办法,我期待下一个角色会抛出异常所以不是试图读取它(这会抛出异常),才能对付它没有昂贵的操作?
BinaryReader.ReadChar();
哪些输入导致ArgumentException
抛出?
当从二进制文件中读取字符BinaryReader
时,我经常遇到无法读取为字符的格式错误的数据。我得到了一个ArgumentException
抛出。检测无效字符
有什么办法,我期待下一个角色会抛出异常所以不是试图读取它(这会抛出异常),才能对付它没有昂贵的操作?
BinaryReader.ReadChar();
哪些输入导致ArgumentException
抛出?
啊,只是想通了:
char next = (char)reader.ReadByte();
if (Char.IsSurrogate(next)) {
return "Non-valid char value";
}
随意张贴一个更好的解决方案。
[文档](https://msdn.microsoft.com/en-us/library/system.io.binaryreader.readchar(V = vs.110)的.aspx)建议使用'ReadChars'代替。 – juharr
我知道,但在阅读单个字符时抛出相同的异常... – Karlovsky120