ファイルの最初の x バイトを y バイトに置き換えたい。つまり、x と y の長さは同じではありません。新しいファイルにコピーしようとしました。動作しますが、大きなファイルの場合は遅くなります。置換の正確な長さについては、RANdomAccessfile を使用できることを知っています。しかし、私は自分の目的のためにそれを使用することができません。
助けてくれてどうもありがとう。
ファイルの最初の x バイトを y バイトに置き換えたい。つまり、x と y の長さは同じではありません。新しいファイルにコピーしようとしました。動作しますが、大きなファイルの場合は遅くなります。置換の正確な長さについては、RANdomAccessfile を使用できることを知っています。しかし、私は自分の目的のためにそれを使用することができません。
助けてくれてどうもありがとう。
x
とが同じでない場合は、ファイルの残りの部分をバイト単位でシフトするだけであっても、ファイルの残りの部分を書き込んでy
から書き込むしかありません。y
y - x
高速にする必要がある場合は、不変のファイルと不変のチェンジリストのセットに裏打ちされた独自のランダムアクセスインターフェイスを作成できます。アプリケーションに余裕がある場合は、最後の不変のコミットポイントとチェンジリストをバックグラウンドで新しいファイルにマージできます。
チェンジリストは、次のように単純にすることができます
コミットポイントは単にファイル全体です。