0

初めてファイルからオブジェクトを読み込もうとしましたが、書き込んだファイルをどのように読み込むのでしょうか?

    private static final long serialVersionUID = -4654676943759320425L;
private ArrayList<ArrayList<Object>> world;
private ArrayList<AFood> foods;
private ArrayList<ABlock> blocks;
private ArrayList<ABug> bugs;
private String name = null;
private int lengthX = 0, lengthY = 0;

これはオブジェクトクラスです (変数のみ)

open = new FileInputStream(worldSavedAs);
openBuffer = new BufferedInputStream(open);
openIn = new ObjectInputStream(openBuffer);
this.world = openIn.readObject();

これは、現在オブジェクトを読み込もうとしている方法です

save = new FileOutputStream(worldNameAs + ".aBugsWorld");
saveBuffer = new BufferedOutputStream(save);
saveOut = new ObjectOutputStream(saveBuffer);
saveOut.writeObject(this.worldSave); // Here was the problem

これは私がファイルを書いた方法です

明らかにこれは正しくなく、変数を 1 つずつ挿入する必要があるのか​​、それともクラス全体として挿入する必要があるのか​​ 、オブジェクトを読み込む方法がわかりません。

編集:問題を引き起こしたオブジェクトではなくファイルにストリームを書き込んでいました(ファイルIOストリームをAWorldにキャストできなかったため)

4

2 に答える 2

1

大丈夫そうです。例から明らかではないシリアライズ可能なオブジェクトのみを書き込み/読み取りするようにしてください。また、ストリームの構築をより簡単にします

ObjectOutputStream out = new ObjectOutputStream(
    new BufferedOutputStream(new FileOutputStrea(file))
);

中間ストリームへの参照を保存する必要はありません。

于 2013-11-13T10:51:12.493 に答える