Это означает, что вы произвели StreamReader.Read()
* StreamReader.Peek()
результат до char
до проверки, чтобы проверить, является ли он -1
(что означает, что это конецпотока).Сначала проверьте возвращаемое значение Peek()
и остановитесь, если оно -1
.
Обратите внимание, что «логический» конец потока может отличаться от фактического конца потока.Вы можете считать, что поток заканчивается, когда вы достигнете нулевого символа, но никто не говорит, что ему когда-либо приходилось достигать этого, и ничто не говорит, что у него не может быть больше данных.Так что будьте осторожны с тем, с кем вы работаете.
О, и в случае, если вам интересно, почему это 65 535 - это 2^16 - 1
, что равно 0xFFFF в шестнадцатеричном формате.Это то, что вы получаете, если вы разыгрываете -1
(то есть 0xFFFFFFFF
) на char
.