让我们假设一个文件有一个int,一个long和一个包含20个字符的字符串:
[ 4 ][ 8 ][ 20 ]
[IIII][LLLLLLLL][SSSSSSSSSSSSSSSSSSSS]
我想把空字节数组放在数据的位置,但是数据被替换为null,而不是像我想的那样被翻录。
继承我的代码:
RandomAccessFile memoryMappedFile = new RandomAccessFile("file.txt", "rw");
FileChannel fc = memoryMappedFile.getChannel();
MappedByteBuffer mem = fc.map(FileChannel.MapMode.READ_WRITE, 0, 32);
int num = mem.getInt();
long val = mem.getLong();
byte[] strByte = new byte[20];
String str = mem.get(strByte);
// tring to erase
byte[] EMPTY_INT = new byte[4];
byte[] EMPTY_LONG = new byte[8];
byte[] EMPTY_STR; = new byte[20];
mem.setPosition(0);
mem.putInt(EMPTY_INT);
mem.putLong(EMPTY_LONG);
mem.put(EMPTY_STR);
我希望在这个操作之后,块就会消失,而不是为空。