JAVA 对象 & byte数组之间转化

深碍√TFBOYSˉ_ 2022-05-24 05:46 289阅读 0赞
  1. 对象 & byte数组之间转化工具类
  2. 效果图:objectToByteArray: [B@7d4991ad
  3. byteArrayToObject: WXOrderMsgEntity(uuid=null, orderSeq=W2018052100000002, carportSeq=1001, stakeSeq=102) {"carportSeq":1001,"orderSeq":"W2018052100000002","stakeSeq":102}
  4. package com.extracme.echarge;
  5. import java.io.ByteArrayInputStream;
  6. import java.io.ByteArrayOutputStream;
  7. import java.io.IOException;
  8. import java.io.ObjectInputStream;
  9. import java.io.ObjectOutputStream;
  10. import com.alibaba.fastjson.JSON;
  11. import com.aliyun.openservices.ons.api.Message;
  12. import com.extracme.evready.charge.define.WXOrderMsgEntity;
  13. public class TestHalp {
  14. public static void main(String[] args) {
  15. WXOrderMsgEntity msg=new WXOrderMsgEntity();
  16. msg.setCarportSeq(1001);
  17. msg.setOrderSeq("W2018052100000002");
  18. msg.setStakeSeq(102);
  19. byte[] objectToByteArray = objectToByteArray(msg);
  20. System.err.println("objectToByteArray: " + objectToByteArray);
  21. Message message=new Message();
  22. message.setBody(objectToByteArray);
  23. Object byteArrayToObject = byteArrayToObject(message.getBody());
  24. System.err.println("byteArrayToObject: " + byteArrayToObject.toString());
  25. WXOrderMsgEntity d=(WXOrderMsgEntity)byteArrayToObject;
  26. System.out.println(JSON.toJSONString(d));
  27. }
  28. /**
  29. * 对象转Byte数组
  30. * @param obj
  31. * @return
  32. */
  33. public static byte[] objectToByteArray(Object obj) {
  34. byte[] bytes = null;
  35. ByteArrayOutputStream byteArrayOutputStream = null;
  36. ObjectOutputStream objectOutputStream = null;
  37. try {
  38. byteArrayOutputStream = new ByteArrayOutputStream();
  39. objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
  40. objectOutputStream.writeObject(obj);
  41. objectOutputStream.flush();
  42. bytes = byteArrayOutputStream.toByteArray();
  43. } catch (IOException e) {
  44. System.err.println("objectToByteArray failed, " + e);
  45. } finally {
  46. if (objectOutputStream != null) {
  47. try {
  48. objectOutputStream.close();
  49. } catch (IOException e) {
  50. System.err.println("close objectOutputStream failed, " + e);
  51. }
  52. }
  53. if (byteArrayOutputStream != null) {
  54. try {
  55. byteArrayOutputStream.close();
  56. } catch (IOException e) {
  57. System.err.println("close byteArrayOutputStream failed, " + e);
  58. }
  59. }
  60. }
  61. return bytes;
  62. }
  63. /**
  64. * Byte数组转对象
  65. * @param bytes
  66. * @return
  67. */
  68. public static Object byteArrayToObject(byte[] bytes) {
  69. Object obj = null;
  70. ByteArrayInputStream byteArrayInputStream = null;
  71. ObjectInputStream objectInputStream = null;
  72. try {
  73. byteArrayInputStream = new ByteArrayInputStream(bytes);
  74. objectInputStream = new ObjectInputStream(byteArrayInputStream);
  75. obj = objectInputStream.readObject();
  76. } catch (Exception e) {
  77. System.err.println("byteArrayToObject failed, " + e);
  78. } finally {
  79. if (byteArrayInputStream != null) {
  80. try {
  81. byteArrayInputStream.close();
  82. } catch (IOException e) {
  83. System.err.println("close byteArrayInputStream failed, " + e);
  84. }
  85. }
  86. if (objectInputStream != null) {
  87. try {
  88. objectInputStream.close();
  89. } catch (IOException e) {
  90. System.err.println("close objectInputStream failed, " + e);
  91. }
  92. }
  93. }
  94. return obj;
  95. }
  96. }

发表评论

表情:
评论列表 (有 0 条评论,289人围观)

还没有评论,来说两句吧...

相关阅读