我有類,服務器,客戶端和消息。 Message類由服務器名稱,客戶端名稱,BufferedImage,命令等組成。我想要做的是將BufferedImage從Server存儲爲Message作爲序列化的字節形式,將Message發送給Client,並在Message類中接收到Message後,將消息中的BufferedImage反序列化。我想問一下它是如何完成的,因爲我能找到的就是直接從服務器發送BufferedImage到客戶端。Java BufferedImage序列化
非常感謝。
我有類,服務器,客戶端和消息。 Message類由服務器名稱,客戶端名稱,BufferedImage,命令等組成。我想要做的是將BufferedImage從Server存儲爲Message作爲序列化的字節形式,將Message發送給Client,並在Message類中接收到Message後,將消息中的BufferedImage反序列化。我想問一下它是如何完成的,因爲我能找到的就是直接從服務器發送BufferedImage到客戶端。Java BufferedImage序列化
非常感謝。
您可以在ObjectOutputStream
中編寫消息實例。
只需定義Message
類,並將所有字段序列化, 將BufferedImage
存儲爲字節表示形式。
從服務器端,您可以通過這種方式在OutputStream中寫郵件:
OutputStream outputStreamServer = ...;
byte[] bufferedImage = ...
Message message = new Message(bufferedImage, name, ...);
ObjectOutputStream ObjectOS = new ObjectOutputStream(outputStreamServer);
ObjectOS.writeObject(message);
這樣,從客戶端,您可以通過使用ObjectInputStream
讀取服務器流,並獲得Message
實例。
而當客戶願意,他可以反序列化的字節到BufferedImage
:的
ObjectInputStream ObjectIS = new ObjectInputStream (inputStreamClient);
Message message = (Message) ObjectIS.readObject();
...
// where unserializeBufferedImage() is a custom method to do the unserialization
BufferedImage image = message.unserializeBufferedImage();
可能的複製[什麼是序列化的圖像(與Swing兼容)從Java到Android的最好方法是什麼?(HTTP: //stackoverflow.com/questions/9994129/what-is-the-best-way-to-serialize-an-image-compatible-with-swing-from-java-to) –