Я просмотрел java.nio.file.attribute.Attributes
и java.nio.file.FileStore
, но не смог найти способ узнать размер блока диска.Как размер блока хранилища файлов может быть переносимым в Java 7?
ответ
Здесь article размер буфера против пропускной способности ввода-вывода. Синопсис: nio обрабатывает все это для вас. В этом SO post вы должны использовать мощность 2.
Девон, я хочу, чтобы определить размер блока программно, который не полагается на проведение эксперимента и интерпретацию результатов. –
Я понимаю это. Однако в Java нет механизма, который предоставляет предпочтительный размер ввода-вывода для файловой системы. Учитывая, что лучшая задняя позиция состоит в том, чтобы использовать вероятность множественного числа и доверять подсистеме io/nio, чтобы делать правильные вещи. Вообще говоря, файловые системы используют размеры ввода-вывода 4K, 8K или 16K. Таким образом, использование одного из этих размеров будет, как правило, достаточным. –
Не является ли размер блока неотъемлемым? Что делать, если хранилище файлов не использует блоки (наверняка маловероятно, но возможно)? –
@Mark Подавляющее большинство файловых магазинов реализованы с помощью вращающихся дисков и, следовательно, используют блоки. Я могу обработать случай, когда размер блока составляет один байт. То, что я хочу, является переносным способом определения этого размера. –