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类,因为它包含特定于平台的本机图像数据和不字节。

EncodedImageExternalizable,所以你应该使用它。默认情况下,所有的图像,我们创建(例如资源)是EncodedImage但如果你有一个Image或可变图像,你可以用它转换为EncodedImage

EncodedImage enc = EncodedImage.createFromImage(img, jpgOrPng);