我正在尝试覆盖文件的最后26个字节。基本上我需要在其中放置一些整数和字节变量。我正在尝试将DataOutputStream与FileOutputStream一起使用,但是这些东西都没有seek()方法或类似的东西。所以我怎么做(文件大小-26)开始的writeInt()?我看到有一个接受偏移量的write方法,但是我不确定这是否是我想要的,如果需要,如何将int,long和byte变量转换为byte []以传递给该方法。

感谢您的意见

最佳答案

使用RandomAccessFile您可以按照以下步骤进行操作:

File myFile = new File (filename);
//Create the accessor with read-write access.
RandomAccessFile accessor = new RandomAccessFile (myFile, "rws");
int lastNumBytes = 26;
long startingPosition = accessor.length() - lastNumBytes;

accessor.seek(startingPosition);
accessor.writeInt(x);
accessor.writeShort(y);
accessor.writeByte(z);
accessor.close();

希望对您有所帮助!让我知道它是否足够好。

10-06 07:12