【发布时间】:2015-11-25 18:27:23
【问题描述】:
我有一个简单的问题。
如何在java中读取二进制文件的所有内容?
我写了一些代码,但它只检索第一个对象。
这是我的代码:
ObjectInputStream in = new ObjectInputStream(new FileInputStream("C:\\Users\\فاطمة\\Downloads\\student.bin"));
Binary b2 = (Binary)in.readObject();
System.out.println("Student ID: " + b2.id);
System.out.println("Student Name: " + b2.name);
System.out.println("Student Grade: " + b2.grade);
in.close();
【问题讨论】:
-
是否有多个对象?如果有,那么您可能希望像这样反序列化为
List:List<Binary> binaries = (List)in.readObject();。如果对象不是某种形式的列表,则文件中只存在一个对象 -
你应该编辑你的标题,说明你正在读取序列化对象而不是任何二进制数据
-
复制和粘贴中间 4 行的次数与文件中的用户数一样多。或者,更严重的是,使用循环。
-
如何循环进入二进制文件???
-
你知道文件中有多少用户吗?如果是这样,请使用
for (int i = 0; i < numberOfUsers; i++)。如果不这样做,则使用无限循环,并在 readObject() 抛出 IOException 时立即中断,因为已到达流的末尾。但在这种情况下,正如 malinator 建议的那样,保存/加载单个 List可能是一个更好的主意。
标签: java file-io binaryfiles