Java RandomAccessFile从开始截断

时间:2012-01-02 16:32:03

标签: java java-io randomaccessfile

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

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

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

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

1 个答案:

答案 0 :(得分:6)

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

因此,您实际上需要复制文件中的所有字节。如果可能的话可以避免。管理队列文件(例如日志)的一种技术是拥有一系列文件,然后定期启动一个新文件,然后将其丢弃。