gpt4 book ai didi

java - 获取psx游戏的游戏ID

转载 作者:行者123 更新时间:2023-12-02 06:48:02 25 4
gpt4 key购买 nike

我想知道从 .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();

更新2:这种方法更好:

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;

}

最佳答案

只需在 2048 字节 block (卷描述符)中的 32768 字节(ISO9660 未使用)之后开始读取。第一个字节决定描述符的类型,1 表示主卷描述符,其中包含前 7 个字节之后的标题(始终为 \x01CD001\x01)。下一个字节是 NUL (\x00),后面是 32 字节的系统和 32 字节的卷标识符,后者通常被称为并显示为标题。请参阅http://alumnus.caltech.edu/~pje/iso9660.html以获得更详细的描述。

关于java - 获取psx游戏的游戏ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18376138/

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