您好,谢谢您的帮助。
我正在研究RPG角色构建器。每个字符都存储为JSON文件,我想包含字符图像。它存储为ImageIcon,但不能存储在JSON中。
如何将ImageIcon转换为String并再次返回?
这是我到目前为止所做的:
public ImageIcon getImageIcon() {
byte b[];
ByteArrayInputStream bi;
ObjectInputStream si;
ImageIcon image = null;
try {
b = this.imageIcon.getBytes();
bi = new ByteArrayInputStream(b);
si = new ObjectInputStream(bi);
image = (ImageIcon) si.readObject();
} catch (IOException | ClassNotFoundException ex) {
System.out.println(ex);
}
return image;
}
public void setImageIcon(ImageIcon imageIconIn) {
ByteArrayOutputStream bo;
ObjectOutputStream so;
try{
bo = new ByteArrayOutputStream();
so = new ObjectOutputStream(bo);
so.writeObject(imageIconIn);
so.flush();
this.imageIcon = bo.toString();
} catch (IOException ex){
System.out.println(ex);
}
}
问题是我将String转换回ImageIcon时出现以下错误:
java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
我认为setImageIcon()方法没问题,但我不确定如何修复getImageIcon()方法。
我使用的是Java 1.8和GSON 2.8.0
再次感谢您的帮助。