读取文件中的最后一个字节并截断为大小

时间:2010-07-21 16:14:56

标签: java file-io

我有一大堆文件,所有这些文件都应该(应该)附加到文件末尾的一个标记字符(1个字节)。如何读取最后一个字节(以确保它是字符)并将其截断为大小(即:删除字符)?

我知道我可以阅读整个内容,并将其全部写回去减去最后一个字符,但是必须有一种方法来获取特定的字节,不是吗?

1 个答案:

答案 0 :(得分:12)

您可以使用RandomAccessFile类搜索文件的末尾,读取它,然后使用setLength()截断文件。

更新:以下是一些代码:

File target = new File("/path/to/file");
RandomAccessFile file = new RandomAccessFile(target,"rwd");
file.seek(target.length()-1); // Set the pointer to the end of the file
char c = file.readChar();
if(c == '|') // Change the pipe character to whatever your sentinel character is
{
     file.setLength(target.length()-1); // Strip off the last _byte_, not the last character
}

注意:我没有测试过这段代码,没有错误处理等等。

如果文件是任何非8位字符集,则需要调整target.length()-1