我有一个名为item
的课程,它有一些字符串,如价格,股票等。
我将这些文件写入文件:
item[] data = new item[numberofitems];
然后填充数组:
ObjectOutputStream outinv = new ObjectOutputStream(outinvstream);
outinv.writeInt(numberofitems);
for (int i = 0; i < numberofitems; i++)
{
outinv.writeObject(data[i]);
}
一切正常。当我尝试阅读时出现问题:
FileInputStream fin = new FileInputStream(f);
ObjectInputStream ois = new ObjectInputStream(fin);
inventory = (item[]) ois.readObject();
其中f是文件(它肯定找到它),库存是item[]
。但是我得到OptionalDataException
任何提示都表示赞赏!
答案 0 :(得分:2)
你必须以与编写它相同的顺序阅读。你首先编写数组大小,因此你需要先读取int然后再读取对象