Расширение файла Java RandomAccessFile путем записи со смещением

Итак, я знаю, что вы можете увеличить размер RandomAccessFile, написав его текущий размер, но я не могу найти никакой информации для конкретного случая.

Если у меня есть 10-байтовый файл, и я пишу 5 байтов со смещением 15, файл расширяется до 20 байтов, но есть ли какие-либо гарантии относительно того, какие байты находятся между старым концом файла и тем, где я начал писать? Например, гарантировано ли, что все они будут нулями или они не определены?


person Cody James    schedule 24.07.2014    source источник
comment
Вы должны открыть файл для добавления. В противном случае любая информация, уже содержащаяся в файле, будет удалена.   -  person Hot Licks    schedule 24.07.2014


Ответы (1)


Из документа по Java:

Если текущая длина файла, возвращаемая методом length, меньше аргумента newLength, файл будет расширен. В этом случае содержимое расширенной части файла не определяется.

Так что нет, никакие значения не гарантируются, уж точно не все нули.

person markspace    schedule 24.07.2014
comment
+1 ОС определяет это, Linux и Windows ставят нули, а другие - нет (и они могут измениться в один прекрасный день) - person Peter Lawrey; 24.07.2014