我在
Java中有一个带字节数组的类.当我序列化和反序列化类的对象时,字节数组的值正在改变.
我该如何解决这个问题?
请参阅示例代码:
public class Test implements Serializable{ private static final long serialVersionUID = 3455892176538865707L; public byte[] datakey; public static void main(String[] args) { byte[] key=new byte[16]; Random rn = new Random(); //Trying to randomize the byte array to use as a cryptographic key rn.nextBytes(key); Test test = new test(); test.datakey=key; System.out.println("Byte Array Before serialization : "+test.datakey); test.serializeTest(test); Test loadedtest=test.deserializetest(); System.out.println("Byte Array After deserialization : "+loadedtest.datakey); } public void serializeTest(Test test) { FileOutputStream fos; try { fos = new FileOutputStream("test.out"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(test); oos.flush(); oos.close();; } catch (FileNotFoundException e) { // Todo Auto-generated catch block e.printstacktrace(); } catch (IOException e) { // Todo Auto-generated catch block e.printstacktrace(); } } public Test deserializetest() { Test test=null; String f="test.out"; try { FileInputStream fis = new FileInputStream(f); ObjectInputStream ois = new ObjectInputStream(fis); test = (Test)ois.readobject(); ois.close(); fis.close(); } catch(FileNotFoundException ex) { ex.printstacktrace(); } catch (IOException e) { // Todo Auto-generated catch block e.printstacktrace(); } catch (ClassNotFoundException e) { // Todo Auto-generated catch block e.printstacktrace(); } return test; } }
输出:
Byte Array Before serialization : [B@15db9742 Byte Array After deserialization : [B@75b84c92
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。