1

.iso または .cue+.bin 形式のディスク イメージからタイトルを取得する最良の方法は何かと考えていました。これを実行できる Java ライブラリはありますか、それともファイル ヘッダーから読み取る必要がありますか?

更新: なんとかやり遂げました。PSX ISO のタイトルに特に興味がありました。長さは 10 バイトで、これを読み取るためのサンプル コードは次のとおりです。

File f = new File("cdimage2.bin");
FileInputStream fin = new FileInputStream(f);
fin.skip(37696);
int i = 0;
while (i < 10) {
    System.out.print((char) fin.read());
    i++;
}
System.out.println();

UPDATE2:この方法の方が優れています:

private String getPSXId(File f) {
FileInputStream fin;
try {
    fin = new FileInputStream(f);
    fin.skip(32768);
    byte[] buffer = new byte[4096];
    long start = System.currentTimeMillis();
    while (fin.read(buffer) != -1) {
        String buffered = new String(buffer);

        if (buffered.contains("BOOT = cdrom:\\")) {
            String tmp = "";
            int lidx = buffered.lastIndexOf("BOOT = cdrom:\\") + 14;
            for (int i = 0; i < 11; i++) {
                tmp += buffered.charAt(lidx + i);
            }
            long elapsed = System.currentTimeMillis() - start;
            // System.out.println("BOOT = cdrom:\\" + tmp);
            tmp = tmp.toUpperCase().replace(".", "").replace("_", "-");
            fin.close();
            return tmp;
        }

    }
    fin.close();
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

return null;

}
4

1 に答える 1