0

UserArchive クラスにこの arrayList があり、MainWindow クラスに saveFile() メソッドがあります。私の問題は、プログラムを閉じるたびに、src/customerlist.txt に次のように表示されることです。

私のコードは次のとおりです: 誰でも問題を見つけることができますか?

public class UserArchive implements Serializable {
ArrayList<User> list = new ArrayList<User>();

public void regCustomer(User u) {
    list.add(u);
}

    public String toString() {
    sorter();
    String users = "";
    Iterator<User> iterator = list.iterator();

    while (iterator.hasNext()) {
        users += iterator.next().toString() + "\n";
    }
    return users;
}

MainWindow クラス:

public class MainWindow extends JFrame {
private SaleWindow sW;
private UserArchive userA;
int customerID = 0;

////

    public void saveFile() {
    try {
        FileOutputStream outStream = new FileOutputStream(
                "src/customerlist.txt");
        ObjectOutputStream utfil = new ObjectOutputStream(outStream);
        utfil.writeObject(userA);
        utfil.close();
    } catch (NotSerializableException nse) {
        JOptionPane
                .showMessageDialog(this, "Objektet er ikke serialisert!");
    } catch (IOException ioe) {
        JOptionPane
                .showMessageDialog(this, "Problem med utskrift til fil!");
    }
}
4

2 に答える 2

0

Javasシリアライゼーションのメカニズムを見てください。Stringコンテンツではなく、Stringオブジェクト(およびサラウンド リスト) をバイナリ形式で記述します。

プレーンテキストファイルを書きたいだけなら、ObjectOutputStream は間違った選択です。java.io.FileWriter または java.io.PrintWriter を詳しく見てください。

于 2013-04-11T10:55:46.873 に答える