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 (хотя имена никогда не упоминаются)