gpt4 book ai didi

Java - 通过套接字发送指向 BufferedImage 的对象

转载 作者:行者123 更新时间:2023-12-03 03:08:35 25 4
gpt4 key购买 nike

我和一群 friend 正在开发一个 Java 项目,我们需要一些有关通过套接字发送对象的帮助。

到目前为止,我们已经使用 ObjectOutputStreamObjectInputStream 实现了通过套接字发送简单对象(整数、字符串等)。然而,我们今天遇到了一个大问题(无论如何对我们来说都是个大问题^^)

我们有一个树结构,我们需要将其从一台电脑发送到另一台电脑。问题是,在该树的每个节点中,我们都有一个对 BufferedImage 的引用,并且它不可序列化。

今天研究了很多,发现可以使用ImageIO.write()通过socket的OutputStream发送one BufferedImage,但是,它是这对我们没有好处,因为我们不需要发送 BufferedImage 本身,而是发送它所在的整个树。

我们需要的是一种方法(如果存在)来序列化每个 BufferedImage,如果需要的话将其转换为另一个类,同时创建树,并让树的每个节点引用新的可序列化类,这样树就可以作为整个对象发送...

我们真的不关心性能,因为我们发送的树并没有那么大(顶部有 10-15 个节点)。预先感谢您的帮助,对于糟糕的英语表示抱歉。哦,这是为了......好吧,一种家庭作业,以防你想记住这一点:-)

谢谢!!

最佳答案

在每个节点上,您可以使用 writeObject() 和 readObject() 检查 http://java.sun.com/developer/technicalArticles/Programming/serialization/了解更多信息

本质上它会变成

public Node implements Serializable{

transient BufferedImage buff;//transient make it so it won't be written with defaultWriteObject (which would error)

private void writeObject(ObjectOutputStream out)throws IOException{
out.defaultWriteObject();
//write buff with imageIO to out
}

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException{
in.defaultReadObject();
//read buff with imageIO from in
}
}

关于Java - 通过套接字发送指向 BufferedImage 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29862137/

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