web-dev-qa-db-ja.com

java)のバイナリデータファイルを読み込むにはどうすればよいですか?

ですから、私は学校向けのプロジェクトを行っています。そこでは、バイナリデータファイルを読み込み、それを使用して、キャラクターの強さや知恵などの統計を作成する必要があります。最初の8ビットが1つの統計を構成するように設定されています。

これを行うための実際の構文は何であるか疑問に思いました。このようにテキストファイルを読むようなものですか。

File file = new File("CharacterStats.dat");
Scanner inputScanner = new Scanner(file);

inputScanner.next();
5
Ionterac

JDK 7以降を使用している場合、最も簡単な方法は次のとおりです。

Path path = Paths.get("CharacterStats.dat");
byte[] fileContents =  Files.readAllBytes(path);

そして、あなたが望むものは何でもその配列で行います。

バイトには8ビットが含まれているため、fileContents[0]で最初の8ビットにアクセスし、 ビット演算 を使用してプログラムのフローを制御できます。

12
Ali Seyedi

スキャナーの代わりに、次のようなものを使用します。

File file = new File("CharacterStats.dat");
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
YourClass object = (YourClass) ois.readObject();

3行目では、ストリームから新しいオブジェクトを作成し、それを目的のオブジェクトにキャストしています。 Javaはどのオブジェクトが読み込まれているのかわからないため、これを行う必要があります。

編集:これは、シリアル化されたオブジェクトとしてバイナリデータを読み込むためのものです。私はあなたの質問をあなたの「統計」がオブジェクトであると誤解したかもしれません。

3
Mitch Weaver