Запись байтов напрямую на диск без файловой системы?JAVA

Программисты JAVA общаются здесь
Anonymous
Запись байтов напрямую на диск без файловой системы?

Сообщение Anonymous »

Я пытаюсь записать раздел моего диска W с определенным смещением с помощью специального массива байтов, как в своего рода автоматизированном шестнадцатеричном редакторе. Пока у меня есть это:

Код: Выделить всё

        try {
URI uri = new URI("file:///W:/");
FileChannel channel = FileChannel.open(Path.of(uri), StandardOpenOption.READ, StandardOpenOption.WRITE);
MappedByteBuffer buff = channel.map(FileChannel.MapMode.READ_WRITE, 4206944, 6);
byte[] write = new byte[] {0x2F, 0x10, 0x50, 0xDA, 0x00, 0x10};
buff.put(write);
buff.force();
} catch (IOException e) {
throw new RuntimeException(e);
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
Когда я запускаю этот код, я получаю «java.nio.file.NoSuchFileException: W:» в строке, создающей экземпляр FileChannel, предположительно потому, что диск W на самом деле не является файлом. Есть ли способ манипулировать диском так, как если бы все его данные были содержимым одного файла, для достижения моей цели? Если нет способа сделать это на Java, есть ли способ сделать это на любом другом языке? Спасибо :)

Вернуться в «JAVA»