ramondaluca Ответов: 0

Из Byte[] в Object в Java


Всем привет,

Я хотел бы создать объект из байта[] в Java (используя IntelliJ IDE).
Я всегда получаю ошибку:
java.io.StreamCorruptedException: invalid stream header: 0A000000



Большое спасибо.

Что я уже пробовал:

Я много гуглил. Многим это действительно нравилось:

Code:
<pre> public Object deserialize(byte[] data) throws IOException, ClassNotFoundException {

ByteArrayInputStream inStr = new ByteArrayInputStream(data);

ObjectInputStream is = new ObjectInputStream(inStr);

return is.readObject();

}

Я тоже попробовал с классом
SerializationUtils.deserialize(data);

но я получил ту же ошибку.

phil.o

Вы можете использовать метод десериализации только в том случае, если вы использовали соответствующий метод сериализации. Сообщение об ошибке, по-видимому, указывает на то, что массив байтов не является допустимым сериализованным потоком.
Пожалуйста, покажите часть кода, которая создает исходный массив байтов.

ramondaluca

Спасибо Вам за Ваш быстрый ответ!
Теперь я понимаю, почему это не работает. Мой байтовый массив поступает из общей памяти, которая взаимодействует с программой, написанной на языке C.
Таким образом, это просто байтовый массив, подобный этому: byte[] buf = {1,2,3,4,5,6,7,8,9};
В этом случае можно ли создать допустимый сериализованный поток из такого буфера?
Большое спасибо

0 Ответов