6

我知道如何截断 RandomAccess 文件,以便删除末尾的字节。

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

或者

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

但是如何截断 RandomAccessFile 以删除开头的字节?我不需要将此文件的内容写入新文件。我用谷歌搜索并找不到答案。请帮忙。提前致谢。

4

1 回答 1

8

这不是大多数文件系统支持的操作。该模型是从磁盘上特定位置开始的字节序列。文件是可变长度的并且可以附加,因此从那里截断相对容易。

因此,您实际上需要复制文件中的所有字节。尽可能避免。管理队列文件(例如日志)的一种技术是拥有一系列文件,然后定期启动一个新文件并在末尾删除一个。

于 2012-01-02T16:36:37.123 回答