私はJavaでさまざまな放課後のクラブ(例:フットボール、ホッケー - ユーザーが入力)を表示するプログラムを書いています。クラブは以下に追加されますArrayList
。
private ArrayList<Club> clubs = new ArrayList<Club>();
次の方法で:
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つの方法があり(以下を参照)、それを機能させようとしてきましたが、うまくいかなかったので、助けやアドバイスをいただければ幸いです。
保存方法 (ファイル名はユーザーが選択)
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 のように表示されます (リスト内の各クラブ)。