gpt4 book ai didi

java - 如何从java访问磁盘上的特定原始数据

转载 作者:太空狗 更新时间:2023-10-29 22:37:43 33 4
gpt4 key购买 nike

我正在尝试使用以下代码访问原始磁盘中偏移量为 50 字节的一个字节。

randomAccessFile = new RandomAccessFile("C:", "r");
randomAccessFile.seek(50);
byte[] buffer = new byte[1];
randomAccessFile.read(buffer);

但我得到的只是以下错误:

java.io.FileNotFoundException: C: (Acceso denegado)
at java.io.RandomAccessFile.open(Native Method)
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:98)
at pru.lseek.main(lseek.java:26)

有什么方法可以从 java 访问驱动器中的精确字节吗?

最佳答案

我一直在寻找从物理驱动器访问原始数据的可能性。现在我让它开始工作了,我只想告诉你怎么做。您可以直接从 java 中访问原始磁盘数据...只需使用管理员权限运行以下代码:

    File diskRoot = new File ("\\\\.\\PhysicalDrive0");
RandomAccessFile diskAccess = new RandomAccessFile (diskRoot, "r");
byte[] content = new byte[1024];
diskAccess.readFully (content);

因此您将获得系统上第一个物理驱动器的第一个 kB。要访问逻辑驱动器 - 如上所述 - 只需将“PhysicalDrive0”替换为驱动器号,例如'D:'

哦,是的......我在 Win 7 系统上尝试使用 Java 1.7......

http://support.microsoft.com/kb/100027/en-us 看看物理驱动器的命名。

关于java - 如何从java访问磁盘上的特定原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2108313/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com