Java序列化:读取和写入文件

时间:2015-10-21 16:52:52

标签: java

我有一个名为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

任何提示都表示赞赏!

1 个答案:

答案 0 :(得分:2)

你必须以与编写它相同的顺序阅读。你首先编写数组大小,因此你需要先读取int然后再读取对象