java.io.IOException:不支持对象类型
问题描述:
当我试图保存Image上传的用户时,出现以下错误。java.io.IOException:不支持对象类型
java.io.IOException: Object type not supported: com.codename1.ui.Image value: [email protected]
at com.codename1.io.Util.writeObject(Util.java:406)
以下是我的程序。
用户类
public class User implements Externalizable {
private String name;
private Image proImg;
public void externalize(DataOutputStream out) throws IOException {
Util.writeUTF(getName(), out);
Util.writeObject(getProImg(), out);
}
public void internalize(int version, DataInputStream in) throws IOException {
setName(Util.readUTF(in));
setProImg((Image) Util.readObject(in));
}
...
}
的StateMachine类
protected void onCreateAccountGui_SaveBtnAction(Component c, ActionEvent event) {
User usr = new User();
usr.setName(findNametxta(c).getText());
usr.setProImg(findProImgGallery(c).getImage());
try
{
storedUser.writeObject("userStore", usr);
}
catch(Exception e)
{
e.printStackTrace();
}
}
答
Image
不是Externalizable
类,因为它包含特定于平台的本机图像数据和不字节。
EncodedImage
是Externalizable
,所以你应该使用它。默认情况下,所有的图像,我们创建(例如资源)是EncodedImage
但如果你有一个Image
或可变图像,你可以用它转换为EncodedImage
:
EncodedImage enc = EncodedImage.createFromImage(img, jpgOrPng);