Я пишу в файл, используя RandomAccessFile. Данные (поля) хранятся с фиксированной длиной поля, например, каждому полю будет выделено пространство в 16 байт. Я что-то пишу, помещая указатель в соответствующую позицию, используя seek(). Проблема возникает, когда я перезаписываю некоторые поля, т. Е. Если «Бангалор» был сохранен ранее, а если перезаписать его «Дели», результатом будет «Делилор». Как полностью стереть «Бангалор» перед написанием «Дели»?
Если значение — это строка, которую я хочу написать, а длина — это фиксированная длина поля (16)
byte[] b=new byte[length];
b=value.getBytes();
try
{
database.seek(offset);
database.write(b);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
seek()
иwrite()
каждый раз, когда вы записываете запись. Использование сопоставления позволит избежать этих двух - person fge   schedule 14.03.2014value.getBytes()
. - person fge   schedule 14.03.2014