私のロガー コードでは、ログ ファイルの読み取りにFileInputStreamを使用しています。ログファイル「byteOffset」から最後に読み取られたファイルのバイト数が格納されます。リーダーがログを読む必要があるときはいつでも、FileInputStream.skip(byteOffset)
そこから読みます。この文脈で、InputStream.skip()
ドキュメントから以下のステートメントを見つけました。
この入力ストリームから n バイトのデータをスキップして破棄します。skip メソッドは、さまざまな理由で、より少ないバイト数(場合によっては 0) をスキップすることになります。これは、いくつかの条件のいずれかが原因である可能性があります。n バイトがスキップされる前にファイルの終わりに到達することは、1 つの可能性にすぎません。
ドキュメントに記載されていること以外に、実際にスキップされたデータが入力と異なる理由は何ですか? ログ リーダー コードで準備する必要があるすべてのケースを確認したいだけです。