我想将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转换为字节?它是可以的吗?哪个是用于在文件/数据库中保存我的类的原理/选项?
我需要帮助。
答案 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;
}