我知道如何截断RandomAccess文件,以便删除末尾的字节。
raf.getChannel().truncate(file.length() - 4);
或
raf.setLength(file.length() - 4);
但是如何以删除开头字节的方式截断RandomAccessFile?我不需要将此文件的内容写入新文件。我用Google搜索,无法找到答案。请帮忙。提前谢谢。
答案 0 :(得分:6)
这不是大多数文件系统支持的操作。该模型是从光盘上特定位置开始的字节序列。文件是可变长度的,可以附加,因此从那里截断相对容易。
因此,您实际上需要复制文件中的所有字节。如果可能的话可以避免。管理队列文件(例如日志)的一种技术是拥有一系列文件,然后定期启动一个新文件,然后将其丢弃。