Из 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};
В этом случае можно ли создать допустимый сериализованный поток из такого буфера?
Большое спасибо