2017-02-20 10 views
-3

Я инициализировал InputStreamReader с байтовым массивом, а затем инициализировал ObjectOutputStream, передавая его его конструктору. Но он показывает ошибку: invalid stream Header. Пожалуйста, помогите, как дать значение ObjectInputStream.Как инициализировать ObjectInputStream с некоторым значением в нем? (не null)

+0

Является ли массив байтов передан InputStream действительным, сериализованным java-объектом? – rodit

+1

У вас есть код? –

+0

Вы уверены, что не запутали ObjectOutputStream с ObjectInputStream? Ваш вопрос не согласуется с самим собой. –

ответ

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 
+0

Спасибо, что сделал. – cruck

Смежные вопросы