Ionterac
Ionterac

Reputation: 91

How do i read in binary data files in java

So I'm doing a project for school where I need to read in a binary data file and use it to make stats, like strength and wisdom, for characters. It's set up so the first 8 bits make up one stat.

I was wondering what the actual syntax to do this is. Is it like reading text files, like this.

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

inputScanner.next();

Upvotes: 9

Views: 33552

Answers (2)

Ali Seyedi
Ali Seyedi

Reputation: 1817

If you're using JDK 7+ the easiest way would be:

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

And then do with that array whatever you want.

Since a byte includes 8 bits you can access the first 8 bits by fileContents[0] and then probably control the flow of your program using bitwise operations.

Upvotes: 18

2ARSJcdocuyVu7LfjUnB
2ARSJcdocuyVu7LfjUnB

Reputation: 435

Instead of a Scanner you would use something like this:

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

Where the third line you are creating a new object from the stream, and casting it to the object you want. You must do this because java cannot know what object is being read in.

EDIT: This is for reading in the binary data as serialized Objects. I may have misinterpreted your question as your "stats" being Objects.

Upvotes: 3

Related Questions