これで私を助けてくれることを願っています: Java 用の Milkshape3D モデル ローダーを作成しようとしています。私はここでMilkshape3D File Format Specificationを見つけ、 それに従ってコードを以下のように作成しました。DataInputStream オブジェクトを使用すると、readChar() のように、必要なデータ型でファイルを読み取ることができるはずです。ファイル ヘッダーのすべての文字を読み取ることができるはずです。 readChar() を使用して「M」のみを取得すると、奇妙なシンボルが返され、最初の 10 バイトをスキップしてバージョン番号を読み取っても、3 とは非常に異なる番号が返されます!!
どうすればいいのかわからないのですが、何が間違っているのか説明してもらえますか? モデルはここで見つけることができます
package milkshape3d_loader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
class ms3d_header_t {
char[] id; // always "MS3D000000"
int version; // 3
ms3d_header_t() {
id = new char[] {'M','S','3','D','0','0','0','0','0','0'};
version = 3;
}
}
public class Milkshape3D_Loader {
public static void main(String[] args) {
try {
File inFile = new File ("dy_joey.ms3d");
FileInputStream inStream = new FileInputStream (inFile);
DataInputStream input = new DataInputStream (inStream);
char id = input.readChar();
System.out.println (id);
}
catch (Exception e) {
System.out.println (e.getMessage());
e.printStackTrace();
}
}
}