将Myobject转换为byte

时间:2013-09-06 21:52:19

标签: java android

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

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

问题是因为Paint和Path必须序列化,但它不能... 首先,我想要为这个类进行序列化,但我有一个完整的,我不能保存我需要的所有东西。 我的问题是如何将AuditoContainer转换为字节?它是可以的吗?哪个是用于在文件/数据库中保存我的类的原理/选项?

我需要帮助。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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;
}