我正在尝试覆盖文件的最后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();
希望对您有所帮助!让我知道它是否足够好。