Как преобразовать объект класса в шестнадцатеричный массив в Java - PullRequest
1 голос
/ 14 декабря 2011

Объект класса, имеющий некоторые данные, и я ушел записать этот объект в Java-карту. У меня есть функция, которая преобразует шестнадцатеричные данные в байтовый массив, а затем записывает эти данные на смарт-карту с помощью Java-карты. Пока я конвертирую данные в шестнадцатеричный формат, я шифрую эти данные. Поэтому мне нужно преобразовать объект класса в шестнадцатеричный. Подскажите пожалуйста как конвертировать объект в шестнадцатеричный формат в java.

Я использую тип смарт-карты = карта контакта с использованием Java-карты 2.2.2 и jcop с использованием apdu.

Ответы [ 3 ]

4 голосов
/ 14 декабря 2011

Здесь я посылаю вам программу, которая преобразует объекты в байтовый массив и наоборот.

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Date;

public class Sandbox {
  public static void main(String[] args) {
    try {
      // convert object to bytes
      Date d1 = new Date();
      System.out.println(d1);
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      ObjectOutputStream oos = new ObjectOutputStream(baos);
      oos.writeObject(d1);
      byte[] buf = baos.toByteArray();

      // convert back from bytes to object
      ObjectInputStream ois =
        new ObjectInputStream(new ByteArrayInputStream(buf));
      Date d2 = (Date) ois.readObject();
      ois.close();

      System.out.println(d2);
    } catch (IOException ioe) {
      ioe.printStackTrace();
    } catch (ClassNotFoundException cnfe) {
      cnfe.printStackTrace();
    }
  }
}
2 голосов
/ 14 декабря 2011

Здесь Вы можете преобразовать объект класса в байтовый массив как

    public byte[] toByteArray (Object obj)
    {
      byte[] bytes = null;
      ByteArrayOutputStream bos = new ByteArrayOutputStream();
      try {
        ObjectOutputStream oos = new ObjectOutputStream(bos); 
        oos.writeObject(obj);
        oos.flush(); 
        oos.close(); 
        bos.close();
        bytes = bos.toByteArray ();
      }
      catch (IOException ex) {
        //TODO: Handle the exception
  }
  return bytes;
}
2 голосов
/ 14 декабря 2011

Вы можете использовать serialization , но для сериализации объекта (тот) класс должен быть сериализуемым. Взгляните на - Спецификация сериализации Java-объектов .

...