Java – 私のArrayListをファイルに書き込み、そのファイルを元のArrayListに読み込む(読み込む)方法はありますか

私は一連の放課後クラブ(E.G.フットボール、ホッケー – ユーザーが入力した)を表示するプログラムをJavaで書いています。クラブは以下のArrayListに追加されます。

private ArrayList<Club> clubs = new ArrayList<Club>();

followngメソッドで:

public void addClub(String clubName) {
    Club club = findClub(clubName);
    if (club == null)
        clubs.add(new Club(clubName));
}

‘Club’はコンストラクタ名を持つクラスです。

public class Club {

    private String name;

    public Club(String name) {
        this.name = name;
    }

    //There are more methods in my program but don't affect my query..
}

私のプログラムは働いています – それは私が私のアレイリストに新しいクラブオブジェクトを追加することを可能にします、私はアレイリストを見ることができます、そして私は私が欲しいものを削除することができます。

しかし、私は今そのarrayList(クラブ)をファイルに保存したいと思っています、それから私は後でファイルをロードすることができるようにしたいと思い、同じarraylistが再びそこにあります。

これには2つの方法があり(下記参照)、それを機能させることを試みてきましたが、まだ手に入れていない、助けまたは助言があれば感謝します。

保存方法(fileNameはユーザーによって選択されます)

public void save(String fileName) throws FileNotFoundException {
    String tmp = clubs.toString();
    PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
    pw.write(tmp);
    pw.close();
}

Loadメソッド(現在のコードは実行されません – ファイルは文字列ですがClubである必要がありますか?

public void load(String fileName) throws FileNotFoundException {
    FileInputStream fileIn = new FileInputStream(fileName);
    Scanner scan = new Scanner(fileIn);
    String loadedClubs = scan.next();
    clubs.add(loadedClubs);
}

私はまた、アプリケーションを実行するためにGUIを使用しています、そして現時点で、私はそれから私が名前と場所をタイプしてそれを保存することを可能にする私の保存ボタンをクリックできます。ファイルが表示され、メモ帳で開くことができますが、Club @ c5d8jdjのように表示されます(私のリストの各クラブについて)

ベストアンサー
練習として、私は次のことをすることをお勧めします:

public void save(String fileName) throws FileNotFoundException {
    PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
    for (Club club : clubs)
        pw.println(club.getName());
    pw.close();
}

これにより、各クラブの名前がファイルの新しい行に書き込まれます。

06001

私はあなたに荷を任せます。ヒント:あなたは一度に一行を書いた、あなたは一度に一行を読むことができます。

JavaのすべてのクラスはObjectクラスを拡張します。そのようにあなたはそのメソッドをオーバーライドすることができます。この場合、toString()メソッドに興味があるはずです。あなたのClubクラスでは、それをオーバーライドしてそのクラスについてのメッセージを好きなフォーマットで印刷することができます。

public String toString() {
    return "Club:" + name;
}

上記のコードを次のように変更できます。

public void save(String fileName) throws FileNotFoundException {
    PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
    for (Club club : clubs)
         pw.println(club); // call toString() on club, like club.toString()
    pw.close();
}

転載記事の出典を記入してください: Java – 私のArrayListをファイルに書き込み、そのファイルを元のArrayListに読み込む(読み込む)方法はありますか - コードログ