1

ファイルの最初の x バイトを y バイトに置き換えたい。つまり、x と y の長さは同じではありません。新しいファイルにコピーしようとしました。動作しますが、大きなファイルの場合は遅くなります。置換の正確な長さについては、RANdomAccessfile を使用できることを知っています。しかし、私は自分の目的のためにそれを使用することができません。

助けてくれてどうもありがとう。

4

2 に答える 2

3

xとが同じでない場合は、ファイルの残りの部分をバイト単位でシフトするだけであっても、ファイルの残りの部分を書き込んでyから書き込むしかありません。yy - x

于 2012-05-22T12:46:42.743 に答える
2

高速にする必要がある場合は、不変のファイルと不変のチェンジリストのセットに裏打ちされた独自のランダムアクセスインターフェイスを作成できます。アプリケーションに余裕がある場合は、最後の不変のコミットポイントとチェンジリストをバックグラウンドで新しいファイルにマージできます。

チェンジリストは、次のように単純にすることができます

  • 以前のチェンジリスト/コミットポイントファイルのパス
  • 置き換えられるオフセットと長さ
  • 交換データ

コミットポイントは単にファイル全体です。

于 2012-05-22T12:53:05.303 に答える