6

RandomAccessファイルを切り捨てて、最後のバイトを削除する方法を知っています。

raf.getChannel().truncate(file.length() - 4);

また

raf.setLength(file.length() - 4);

しかし、最初のバイトが削除されるようにRandomAccessFileを切り捨てる方法はありますか?このファイルの内容を新しいファイルに書き込む必要はありません。グーグルで答えが見つかりませんでした。助けてください。前もって感謝します。

4

1 に答える 1

8

これは、ほとんどのファイルシステムがサポートする操作ではありません。モデルは、ディスク上の特定の場所から始まる一連のバイトです。ファイルは可変長で追加できるため、そこからの切り捨ては比較的簡単です。

したがって、実際にはファイル内のすべてのバイトをコピーする必要があります。可能であれば避けてください。キューファイル(ログなど)を管理する1つの手法は、一連のファイルを用意してから、定期的に新しいファイルを開始し、1つを最後から削除することです。

于 2012-01-02T16:36:37.123 に答える