バイナリリーダーのファイルの終わりに到達したかどうかを確認する方法を探していました。1つの提案は、PeekCharをそのまま使用することでした。
while (inFile.PeekChar() > 0)
{
...
}
しかし、問題が発生したようです
未処理の例外:System.ArgumentException:出力charバッファーが小さすぎます デコードされた文字を含むll、エンコード'Unicode(UTF-8)'フォールバック'Syste m.Text.DecoderReplacementFallback'。 パラメータ名:chars System.Text.Encoding.ThrowCharsOverflow()で System.Text.Encoding.ThrowCharsOverflow(DecoderNLSデコーダー、ブール値nothin gDecoded) System.Text.UTF8Encoding.GetChars(Byte * bytes、Int32 byteCount、Char * char s、Int32 charCount、DecoderNLS baseDecoder) System.Text.DecoderNLS.GetChars(Byte * bytes、Int32 byteCount、Char * chars、 Int32 charCount、ブールフラッシュ) System.Text.DecoderNLS.GetChars(Byte [] bytes、Int32 byteIndex、Int32byteCで ount、Char [] chars、Int32 charIndex、ブール値フラッシュ) System.Text.DecoderNLS.GetChars(Byte [] bytes、Int32 byteIndex、Int32byteCで ount、Char [] chars、Int32 charIndex) System.IO.BinaryReader.InternalReadOneChar()で System.IO.BinaryReader.PeekChar()で
したがって、PeekCharはそれを行うための最良の方法ではないかもしれません。また、リーダーの現在の位置をチェックしていて、次のキャラクターが実際にどうあるべきかをチェックしているので、そのように使用するべきではないと思います。