Я инициализировал InputStreamReader
с байтовым массивом, а затем инициализировал ObjectOutputStream
, передавая его его конструктору. Но он показывает ошибку: invalid stream Header
. Пожалуйста, помогите, как дать значение ObjectInputStream
.Как инициализировать ObjectInputStream с некоторым значением в нем? (не null)
-3
A
ответ
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
Является ли массив байтов передан InputStream действительным, сериализованным java-объектом? – rodit
У вас есть код? –
Вы уверены, что не запутали ObjectOutputStream с ObjectInputStream? Ваш вопрос не согласуется с самим собой. –