小编Azu*_*ake的帖子

如何在 Java 中获得具有写入权限的原始磁盘访问 - Windows 7

好吧,相信我,我这样做是有原因的。也许没有使用 Java,但确实有。我可以使用 UNC 样式路径在 Windows 7 上原始访问磁盘,例如:

RandomAccessFile raf = null;
    try {
        raf = new RandomAccessFile("\\\\.\\PhysicalDrive0","r");
        byte [] block = new byte [2048];
        raf.seek(0);
        raf.readFully(block);
        System.out.println("READ BYTES RAW:\n" + new String(block));
    } catch (IOException ioe) {
        System.out.println("File not found or access denied. Cause: " + ioe.getMessage());
        return;
    } finally {
        try {
            if (raf != null) raf.close();
            System.out.println("Exiting...");
        } catch (IOException ioe) {
            System.out.println("That was bad.");
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,如果我切换到“rw”模式,则会出现 NullPointerException,即使我以管理员身份运行该程序,也无法获得对磁盘进行原始写入的句柄。我知道已经有人问过这个问题了,但主要是为了阅读……那么,写作呢?我需要 JNI 吗?如果是这样,有什么建议吗?

干杯

java io disk

5
推荐指数
1
解决办法
2557
查看次数

标签 统计

disk ×1

io ×1

java ×1