ファイルの最後にいることを確認する方法を知っている人はいますか? BinaryReader を使用して PeekChar を試しましたが、例外がスローされます。他の提案はありますか?
ありがとう。
から、Stream
あなたRead(buffer, offset, count)
が非肯定的な結果をPeek()
得るなら、そしてあなたが否定的な結果を得るなら。
を使用するBinaryReader
と、ドキュメントPeekChar()
はそれが負の値を返す必要があることを示唆しています。
戻り値
タイプ:System.Int32次に使用可能な文字、または使用可能な文字がなくなった場合、またはストリームがシークをサポートしていない場合は-1。
これは破損したストリームではありませんか?つまり、残りのデータは、指定さchar
れたエンコーディングから完全なものを形成することはできませんか?
ストリームがシークをサポートしている場合(BaseStream.CanSeekプロパティを使用してこれを確認)、次のようにBaseStreamのPositionプロパティを確認します。
if (myBinaryReader.BaseStream.CanSeek){
bool atEnd = (myBinaryReader.BaseStream.Position == myBinaryReader.BaseStream.Length - 1)
}
While BinReader.PeekChar() > 0
{
...
}