我如何读取java中的二进制数据文件

时间:2016-04-15 17:01:51

标签: java binary fileinputstream

所以我正在为学校做一个项目,我需要在二进制数据文件中读取并使用它来为角色制作统计数据,如力量和智慧。它的设置使前8位组成一个统计数据。

我想知道实际的语法是什么。是否像阅读文本文件一样。

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

inputScanner.next();

2 个答案:

答案 0 :(得分:10)

如果您使用的是JDK 7+,最简单的方法是:

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

然后随心所欲地使用该数组。

由于一个字节包含8位,您可以通过fileContents[0]访问前8位,然后可能使用bitwise operations来控制程序流。

答案 1 :(得分:2)

您可以使用以下内容代替扫描仪:

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

第三行是从流中创建新对象,并将其强制转换为所需对象。您必须这样做,因为java无法知道正在读取的对象。

编辑:这是用于读取二进制数据作为序列化对象。我可能会将您的问题误解为您的"统计数据"是对象。