所以我正在为学校做一个项目,我需要在二进制数据文件中读取并使用它来为角色制作统计数据,如力量和智慧。它的设置使前8位组成一个统计数据。
我想知道实际的语法是什么。是否像阅读文本文件一样。
File file = new File("CharacterStats.dat");
Scanner inputScanner = new Scanner(file);
inputScanner.next();
答案 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无法知道正在读取的对象。
编辑:这是用于读取二进制数据作为序列化对象。我可能会将您的问题误解为您的"统计数据"是对象。