我正在读取二进制文件,我必须解析此文件中的标题。
我设置了DataInputStream
,我需要让它继续循环遍历文件直到结束。我是Java的新手,所以不确定如何从我的C#经验中解决这个问题。目前我有以下代码:
while (is.position != is.length) {
if ( card == Staff) {
System.out.print(card);
} else if ( card == Student ) {
System.out.print(card);
} else if (card == Admin) {
System.out.print(card);
} else {
System.out.print("Incorrect");
}
}
is
是我创建的输入流,我唯一的错误是在第一行中,while循环在位置和长度下开始,表示它们无法解析或不是字段。
答案 0 :(得分:1)
查看the docs,DataInputStream
看起来不像是一个位置字段。您可以使用其他方法之一来检查是否有更多可用数据,但是您的代码示例中并不清楚您要执行的操作。
目前,我可以在您的代码中看到许多问题:
card
,Staff
,Student
和Admin
的类型为String
,那么您需要使用equals(String s)
方法对它们进行比较,而不是==
引用相等(即。card.equals(Staff)
而不是card == Staff
)is.position
的值(我知道这实际上并不存在,但假设说......)那么如果你可以进入循环,你将永远不会离开它。card
的值。如果你做了一些固定次数的迭代,你就会反复打印相同的输出,这可能不是你想要的。