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

Ion*_*rac 5 java binary fileinputstream

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

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

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

inputScanner.next();
Run Code Online (Sandbox Code Playgroud)

Ali*_*edi 11

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

Path path = Paths.get("CharacterStats.dat");
byte[] fileContents =  Files.readAllBytes(path);
Run Code Online (Sandbox Code Playgroud)

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

由于一个字节包含8位,您可以访问前8位fileContents[0],然后可能使用按位运算控制程序的流程.


Mit*_*ver 3

你可以使用这样的东西来代替扫描仪:

File file = new File("CharacterStats.dat");
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
YourClass object = (YourClass) ois.readObject();
Run Code Online (Sandbox Code Playgroud)

在第三行中,您从流中创建一个新对象,并将其转换为您想要的对象。你必须这样做,因为 java 无法知道正在读入什么对象。

编辑:这是为了将二进制数据读入序列化对象。我可能误解了你的问题,因为你的“统计数据”是对象。