gpt4 book ai didi

java - 如何通过将 ByteArrayOutputStream 复制到 ByteArray 来克隆对象,然后通过 ByteArrayInputStream 调用它?

转载 作者:行者123 更新时间:2023-12-02 05:04:14 24 4
gpt4 key购买 nike

我尝试通过 1) 将其插入 ByteArrayOutputStream 2) 将流分配给字节数组 3) 通过 ByteArrayInputStream 读取字节数组来克隆对象。但是,这不起作用,因为我无法将 OutputStream 分配给字节数组,该行将不会执行。

方法基于Java Serializable Object to Byte Array

public Bank clone() {
Bank objektKopie = null;
byte[] byteKopie = null;
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream oo = null;
try {
bo = new ByteArrayOutputStream();
oo = new ObjectOutputStream(bo);
oo.writeObject(this);
oo.flush() ;
byteKopie = bo.toByteArray(); // THIS WILL NOT HAPPEN
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try {
bo.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
ByteArrayInputStream bi = new ByteArrayInputStream(byteKopie); // byteKopie IS STILL NULL
ObjectInputStream oi = null;
try {
oi = new ObjectInputStream(bi);
objektKopie = (Bank) oi.readObject();
} catch (Exception e) { System.out.println(e.getMessage()); }
return objektKopie;
}

最佳答案

您的代码抛出“NotSerialized”异常,您的银行类需要实现可序列化

关于java - 如何通过将 ByteArrayOutputStream 复制到 ByteArray 来克隆对象,然后通过 ByteArrayInputStream 调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56364144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com