-2

我想对象 AuditContainer 转换为字节,然后保存在文件中:

public class AuditContainer implements Serializable {
    private Paint mPaint;
    private Path mPath;
    private int x,y;
    private String text;
    boolean is_text;

问题是因为 Paint 和 Path 必须被序列化,但它不能。首先我想为这个类进行序列化,但我有一个 truble,我无法保存我需要的所有东西。我的问题是如何将 AuditoContainer 转换为字节?可能吗?将我的课程保存在文件/数据库中的原则/选项是什么?

我需要帮助,请。

4

2 回答 2

3

如果您想要将对象的状态写入文件,最好不使用序列化。序列化有很多缺陷并且很难正确完成,而您可以轻松地将对象的属性保存为文件中的字符串。

于 2013-09-06T22:38:54.107 回答
1

想要序列化示例?

好的,这是一个(确保变量中提到的所有对象也是可序列化的)

    public void save(AuditContainer auditContainer, File file) throws FileNotFoundException, IOException {

    FileOutputStream fos = null;
    ObjectOutputStream oos = null;

    try{
            fos = new FileOutputStream(file);
            oos = new ObjectOutputStream(fos);    
            oos.writeObject(auditContainer);
    }finally{
        if(oos != null){
            oos.flush();
            oos.close();
    }
    }
}


public AuditContainer load(File file) throws FileNotFoundException, IOException, ClassNotFoundException {
    AuditContainer auditContainer = null;

    FileInputStream fis = null;
    ObjectInputStream ois = null;
    try{
        fis = new FileInputStream(file);
        ois = new ObjectInputStream(ois);
        auditContainer = (AuditContainer)ois.readObject();
    }finally{
        if(ois != null){
            ois.close();
        }
    }
    return auditContainer;
}
于 2013-09-06T22:47:17.333 回答