java中如何将类的对象转换为十六进制数组

发布于 2024-12-20 21:42:02 字数 205 浏览 5 评论 0原文

具有一些数据的类的对象,我将该对象写入java卡中。 我有一个函数可以将十六进制数据转换为字节数组,然后使用 java 卡将该数据写入智能卡。 当我将数据转换为十六进制格式时,我会加密该数据。 所以我需要将类的对象转换为十六进制。 请告诉我如何在java中将对象转换为Hex格式。

我正在使用智能卡类型 = 接触卡,使用 java 卡 2.2.2 和 jcop,使用 apdu。

An object of class having some data and I am gone write that object into java card.
I am having a function that convert hexadecimal data into byte array and then write that data to smart card using java card.
While i convert data into hex format i encrypt that data.
So i need to convert object of class into hexadecimal.
Please tell me how to convert object into Hex format in java.

I am using smart card type = contact card using java card 2.2.2 with jcop using apdu.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

习ぎ惯性依靠 2024-12-27 21:42:02

在这里,我向您发送将对象转换为字节数组的程序,反之亦然。

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();
    }
  }
}

Here i am sending you program which converts objects to byte array and vice versa.

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();
    }
  }
}
2024-12-27 21:42:02

您可以使用序列化,但要序列化一个对象,一个(该)类必须是可序列化。查看 - Java 对象序列化规范

You may use serialization but to serialize an object a (that) class must be serializable. Have a look at - Java Object Serialization Specification.

向地狱狂奔 2024-12-27 21:42:02

在这里您可以将类对象转换为字节数组,如下所示

    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;
}

Here You can convert class object to byte array as

    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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文