-2

AuditContainer オブジェクトをバイトに変換してからファイルに保存したい:

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

問題は、ペイントとパスをシリアル化する必要があるためですが、それはできません..まず、このクラスのシリアル化を行いたいのですが、問題が 1 つあります。必要なものをすべて保存することはできません。私の質問は、AuditoContainer をバイトに変換する方法です。それは可能ですか?私のクラスをファイル/データベースに保存するための原則/オプションはどれですか?

助けが必要です、お願いします。

4

2 に答える 2

3

オブジェクトのステータスをファイルに書き込みたい場合は、シリアライゼーションを使用しないほうがよいでしょう。シリアル化には多くの欠陥があり、正しく実行するのは困難ですが、オブジェクトのプロパティを文字列としてファイルに簡単に保存できます。

于 2013-09-06T22:38:54.107 に答える
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;
}
于 2013-09-06T22:47:17.333 に答える