Java: режим RandomAccessFile" rws "vs"rwd"?

на RandomAccessFile конструктор принимает mode строка, определяющая, как файл должен быть открыт.

Я смущен разницей между "rws" и "rwd" режима.

вот что docs состояние:

" rws "открытое для чтения и записи, как с "rw", и также требует что каждое обновление содержимого файла или метаданных быть написано синхронно хранилищем устройство.

" rwd "открытое для чтения и записи, как с "rw", и также требует чтобы каждое обновление содержимого файла записывалось синхронно базовое запоминающее устройство.

[...]

режим "rwd" можно использовать для уменьшения числа операций ввода-вывода выполненный. Использование " rwd " требует только обновления содержимого файла для записывается в хранилище; использование " rws " требует обновления обоих файлов содержание и его метаданные написано, что вообще требуется как минимум еще одна операция ввода-вывода низкого уровня.

...и никаких объяснений о чем metadata средства. Значит ли это, что "rws" обновление последняя измененная метка времени в файловой системе, и "rwd" не ?

2 ответов


означает ли это, что "rws" обновляет последнюю измененную метку времени в файловой системе, а "rwd" - нет ?

rws сбрасывает содержимое файла и дату изменения файла.

rwd сбрасывает содержимое файла, но дата изменения может не измениться, пока файл не будет закрыт.

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

BTW rwd много медленнее для записи, чем rw, и rws снова медленнее.


есть некоторая информация о метаданных файла в FileChannel API http://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html

...The file may also have some associated metadata such as access permissions, content type, and last-modification time...

кроме того, FileChannel.force(boolean metadata) API предоставляет больше информации о разнице между rws и rwd (хотя имена никогда не упоминаются)