Требуется ли для StandardOpenOption.APPEND StandardOpenOption.WRITE?JAVA

Программисты JAVA общаются здесь
Anonymous
Требуется ли для StandardOpenOption.APPEND StandardOpenOption.WRITE?

Сообщение Anonymous »

Согласно документации, StandardOpenOption.APPEND требует StandardOpenOption.WRITE.

Если файл открыт для доступа WRITE байты будут записываться в конец файла, а не в начало.
Если файл открыт для записи другими программами, то это файл зависит от системы, если запись в конец файла является атомарной.

Это правда?
Я тестировал с Только StandardOpenOption.APPEND, и он работает.

Код: Выделить всё

@Test
void __(@TempDir final Path dir) throws Exception {
final var path = Files.createTempFile(dir, null, null);
final var b = ByteBuffer.allocate(12);
try (var channel = FileChannel.open(path, StandardOpenOption.APPEND)) {
while (b.hasRemaining()) {
channel.write(b);
}
channel.force(true);
}
Assertions.assertEquals(Files.size(path), b.capacity());
}
Что означает комментарий?

Если файл открыт для доступа ЗАПИСЬ, то байты будут записываться в конец файла, а не в начало.


Подробнее здесь: https://stackoverflow.com/questions/790 ... tion-write

Вернуться в «JAVA»