Рубрики
Без рубрики

Преобразование объекта в байт[] в Java

В этой статье показано, как преобразовать объект в “байт[]” или массив байтов и наоборот в Java.

В этой статье показано, как преобразовать объект в байт[] или массив байтов и наоборот в Java.

1. Преобразование объекта в байт[]

В приведенном ниже примере показано, как использовать ByteArrayOutputStream и ObjectOutputStream для преобразования объекта в байт[] .

  // Convert object to byte[]
  public static byte[] convertObjectToBytes(Object obj) {
      ByteArrayOutputStream boas = new ByteArrayOutputStream();
      try (ObjectOutputStream ois = new ObjectOutputStream(boas)) {
          ois.writeObject(obj);
          return boas.toByteArray();
      } catch (IOException ioe) {
          ioe.printStackTrace();
      }
      throw new RuntimeException();
  }

  // Convert object to byte[]
  public static byte[] convertObjectToBytes2(Object obj) throws IOException {
      ByteArrayOutputStream boas = new ByteArrayOutputStream();
      try (ObjectOutputStream ois = new ObjectOutputStream(boas)) {
          ois.writeObject(obj);
          return boas.toByteArray();
      }
  }

2. Преобразовать байт[] возражать

В приведенном ниже примере показано, как использовать ByteArrayInputStream и ObjectInputStream для преобразования байт [] вернуться к объекту.

  // Convert byte[] to object
  public static Object convertBytesToObject(byte[] bytes) {
      InputStream is = new ByteArrayInputStream(bytes);
      try (ObjectInputStream ois = new ObjectInputStream(is)) {
          return ois.readObject();
      } catch (IOException | ClassNotFoundException ioe) {
          ioe.printStackTrace();
      }
      throw new RuntimeException();
  }

  // Convert byte[] to object
  public static Object convertBytesToObject2(byte[] bytes)
      throws IOException, ClassNotFoundException {
      InputStream is = new ByteArrayInputStream(bytes);
      try (ObjectInputStream ois = new ObjectInputStream(is)) {
          return ois.readObject();
      }
  }

  // Convert byte[] to object with filter
  public static Object convertBytesToObjectWithFilter(byte[] bytes, ObjectInputFilter filter) {
      InputStream is = new ByteArrayInputStream(bytes);
      try (ObjectInputStream ois = new ObjectInputStream(is)) {

          // add filter before readObject
          ois.setObjectInputFilter(filter);

          return ois.readObject();
      } catch (IOException | ClassNotFoundException ioe) {
          ioe.printStackTrace();
      }
      throw new RuntimeException();
  }

Дальнейшее Чтение

  • Примеры сериализации и десериализации Java

Скачать Исходный Код

$клон git https://github.com/mkyong/core-java.git

$cd java-ввод-вывод/com/mkyong/ввод-вывод/объект

Рекомендации

Оригинал: “https://mkyong.com/java/convert-object-to-byte-in-java/”