【发布时间】:2014-02-09 17:09:42
【问题描述】:
我一直试图弄清楚为什么我编写的从文件中读取对象的方法不起作用,并意识到即使文件没有完全读取,ObjectInputStream 的 available() 方法也会给出 0。 在我使用 FileInputStream available() 方法来确定 EOF 之后,该方法确实有效并且有效!
为什么该方法不适用于 ObjectInputSram 而适用于 FileInputStream?
代码如下:
public static void getArrFromFile() throws IOException, ClassNotFoundException {
Product p;
FileInputStream in= new FileInputStream(fName);
ObjectInputStream input= new ObjectInputStream(in);
while(in.available()>0){
p=(Product)input.readObject();
if (p.getPrice()>3000)
System.out.println(p);
}
input.close();
P.S- 我读过我应该为此使用 EOF 异常而不是 available() ,但我只是想知道为什么这不起作用。
非常感谢!!!
【问题讨论】:
标签: java