Я работаю с большим количеством файлов, и мне нужно знать каждый файл медосмотр смещение (адрес) в памяти жесткого диска или флэш-Как получить файл физический адрес в Java
Спасибо дорогие
Я работаю с большим количеством файлов, и мне нужно знать каждый файл медосмотр смещение (адрес) в памяти жесткого диска или флэш-Как получить файл физический адрес в Java
Спасибо дорогие
Java не может этого сделать. Проблема слишком низкая. Вам нужно будет использовать язык системного программирования.
Файлы не имеют физического смещения. Вместо этого они состоят из блоков (если только ваш файл невелик, в этом случае есть один блок). Вы можете прочитать необработанную файловую систему в Linux, если вы являетесь пользователем root, например /dev/sd1c
, но как вы это делаете, зависит от вашей файловой системы.
Предлагаю вам ознакомиться с страницей wikipedia для используемой файловой системы.
Однако, скорее всего, вы не знаете, где находится фактическое местоположение, и виртуальное место - это все, что вам нужно. Для этого вы открываете файл с FileInputStream/FileOutputStream/RandomAccessFile, а память отображает файл. Это отобразит файл в непрерывную виртуальную память, и вы сможете получить доступ к содержимому файла, как если бы он был в памяти (если вы получаете доступ ко всему файлу, есть вероятность, что он будет сохранен в памяти)
Как я понял, вы имеете в виду, что физический адрес файла сохраняется в структуре, подобной связанному списку. le, чтобы иметь все адреса в связанном списке, такие как структура, чтобы мы могли получить доступ к адресу всего файла? – Mehdi
@Mahdi Файл не имеет адреса. Вы можете отображать карту памяти, чтобы получить один или несколько адресов, в нескольких регионах, например. ByteBuffers и соедините их вместе. Я бы использовал ArrayList, чтобы сделать произвольный доступ проще. Или вы можете создать одно очень большое сопоставление памяти, если знаете, насколько вы хотите, чтобы он был с самого начала. –
Спасибо за ваш ответ – Mehdi
Можете ли вы хотя бы показать нам, что вы пробовали? или что вы сделали? Я не могу получить четкое представление о том, что именно вы хотите, когда вы запрашиваете физический адрес, ищете ли вы каталог C:/или что-то большее, например, как ячейки памяти @ as2452s. Обычно, когда вы создаете класс и не добавляете переопределяющий метод toString() и использование print или toString на этом объекте, вы получите его ячейку памяти – ThaBomb
Есть миллионы учебных пособий, уже доступных в Интернете. Что вы пробовали? – Tdorno
Осуществляете ли вы драйвер жесткого диска? в Java? Если нет, вам не нужен «физический адрес» файла, а его расположение в файловой системе, которое возвращается методами класса java.io.File. –