如何使用一些值初始化ObjectInputStream? (不是null)

时间:2017-02-20 12:23:14

标签: java initialization inputstream objectinputstream

我使用字节数组初始化InputStreamReader,然后初始化ObjectOutputStream将其传递给它的构造函数。但它显示错误:invalid stream Header。请帮助我们了解如何为ObjectInputStream提供一些价值。

1 个答案:

答案 0 :(得分:0)

ObjectStreams具有非常特定的格式,因此您不能只创建一个字节数组并期望它的格式正确。您可以使用ObjectOutputStream将对象写入字节数组,这将确保格式正确。

// Write an object to a ByteArrayOutputStream
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oout = new ObjectOutputStream(bout);
oout.writeObject(someObject);
oout.close();

// Read the object from the resulting array
ObjectInputStream oin = new ObjectInputStream(new ByteArrayInputStream(bout.toByteArray()));
oin.readObject(); // Read the object we wrote in