сбор объектов в формате bytes и затем наоборот в java

#java #collections #bytearray

#java #Коллекции #массивы

Вопрос:

У меня есть коллекция объектов, которые мне нужно сохранить в байтовом формате, а затем после этого я должен преобразовать данные, которые в байтах, обратно в коллекцию объектов.Мне нужен ответ на java. Например, у меня есть массив объектов (любого типа), затем я должен преобразовать этот массив в байтовый массив в Java, а затем наоборот.

Пожалуйста, если возможно, предложите мне коллекцию для использования и методы, которые ее поддерживают.

Комментарии:

1. Разве не для этого предназначена сериализация?

2. Если вы покажете нам, что у вас есть, нам будет легче помочь вам. Вы гуглили «java convert object to byte»? Похоже, вы хотите сериализовать объект и отправить его через какое-либо средство связи, это правильно?

Ответ №1:

Предполагая, что Foo implements Serializable просто сделайте

 List<Foo> list = createItSomehow();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);

try {
    oos.writeObject(list);
} finally {
    oos.close();
}

byte[] bytes = baos.toByteArray();
// ...
  

И наоборот:

 ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
List<Foo> list = null;

try {
    list = (List<Foo>) ois.readObject();
} finally {
    ois.close();
}

// ...
  

Вместо ByteArrayOutputStream и ByteArrayInputStream вы, конечно, можете также указать FileOutputStream и FileInputStream соответственно для записи / чтения в / из файла.

Смотрите также: