Pertanyaan Bagaimana saya membaca dalam file data biner di java


Jadi saya sedang mengerjakan proyek untuk sekolah di mana saya perlu membaca dalam file data biner dan menggunakannya untuk membuat statistik, seperti kekuatan dan kebijaksanaan, untuk karakter. Ini diatur sehingga 8 bit pertama membentuk satu stat.

Saya bertanya-tanya apa sintaks yang sebenarnya untuk melakukan ini. Apakah itu seperti membaca file teks, seperti ini.

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

inputScanner.next();

4
2018-04-15 17:01


asal


Jawaban:


Jika Anda menggunakan JDK 7+ cara termudah adalah:

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

Dan kemudian lakukan dengan array apa pun yang Anda inginkan.

Karena byte termasuk 8 bit Anda dapat mengakses 8 bit pertama dengan fileContents[0] dan kemudian mungkin mengontrol aliran program Anda menggunakan operasi bitwise.


7
2018-04-15 17:06



Daripada Scanner, Anda akan menggunakan sesuatu seperti ini:

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

Di mana baris ketiga Anda membuat objek baru dari aliran, dan mentransmisikannya ke objek yang Anda inginkan. Anda harus melakukan ini karena java tidak dapat mengetahui objek apa yang sedang dibaca.

EDIT: Ini untuk membaca data biner sebagai Objek serial. Saya mungkin telah salah menafsirkan pertanyaan Anda sebagai "statistik" Anda sebagai Objek.


2
2018-04-15 17:04