2013-11-10 3 views
1

Я работаю с большим количеством файлов, и мне нужно знать каждый файл медосмотр смещение (адрес) в памяти жесткого диска или флэш-Как получить файл физический адрес в Java

Спасибо дорогие

+0

Можете ли вы хотя бы показать нам, что вы пробовали? или что вы сделали? Я не могу получить четкое представление о том, что именно вы хотите, когда вы запрашиваете физический адрес, ищете ли вы каталог C:/или что-то большее, например, как ячейки памяти @ as2452s. Обычно, когда вы создаете класс и не добавляете переопределяющий метод toString() и использование print или toString на этом объекте, вы получите его ячейку памяти – ThaBomb

+0

Есть миллионы учебных пособий, уже доступных в Интернете. Что вы пробовали? – Tdorno

+1

Осуществляете ли вы драйвер жесткого диска? в Java? Если нет, вам не нужен «физический адрес» файла, а его расположение в файловой системе, которое возвращается методами класса java.io.File. –

ответ

0

Java не может этого сделать. Проблема слишком низкая. Вам нужно будет использовать язык системного программирования.

1

Файлы не имеют физического смещения. Вместо этого они состоят из блоков (если только ваш файл невелик, в этом случае есть один блок). Вы можете прочитать необработанную файловую систему в Linux, если вы являетесь пользователем root, например /dev/sd1c, но как вы это делаете, зависит от вашей файловой системы.

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

Однако, скорее всего, вы не знаете, где находится фактическое местоположение, и виртуальное место - это все, что вам нужно. Для этого вы открываете файл с FileInputStream/FileOutputStream/RandomAccessFile, а память отображает файл. Это отобразит файл в непрерывную виртуальную память, и вы сможете получить доступ к содержимому файла, как если бы он был в памяти (если вы получаете доступ ко всему файлу, есть вероятность, что он будет сохранен в памяти)

+0

Как я понял, вы имеете в виду, что физический адрес файла сохраняется в структуре, подобной связанному списку. le, чтобы иметь все адреса в связанном списке, такие как структура, чтобы мы могли получить доступ к адресу всего файла? – Mehdi

+0

@Mahdi Файл не имеет адреса. Вы можете отображать карту памяти, чтобы получить один или несколько адресов, в нескольких регионах, например. ByteBuffers и соедините их вместе. Я бы использовал ArrayList, чтобы сделать произвольный доступ проще. Или вы можете создать одно очень большое сопоставление памяти, если знаете, насколько вы хотите, чтобы он был с самого начала. –

+0

Спасибо за ваш ответ – Mehdi

Смежные вопросы