【发布时间】:2015-07-21 00:15:51
【问题描述】:
我开始学习 Java I/O。我有一个包含整数数据的二进制文件,我正在尝试使用FileInputStream 读取它并在控制台上显示文件的内容。看来我没有采取正确的方法,不断得到 -1 女巫意味着文件结束。这是我的代码。
File f=new File("sunday.dat");
FileInputStream fis=new FileInputStream(f);
try {
while (true) {
number=fis.read();
System.out.println(number);
}
} catch (EOFException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
fis.close();
【问题讨论】:
-
你用的是什么版本的java?
-
@DasDas 无关。该代码的操作与版本无关。
-
while (true) {...}将尝试无限执行其代码块。如果您没有任何停止条件(或中断/返回/抛出语句),那么在您读取文件内容后,-1将一直打印。你需要重新考虑你的循环。顺便说一句,如果您想以文本形式读取数据,请使用Reader。Streams用于二进制数据。 -
是的——但取决于他的 java 版本——我们可以告诉他什么是读取文件的最佳方式
-
@DasDas 他问他为什么一直得到-1。答案与版本无关。