我正在用Java编写一个程序,该程序显示了一系列课后俱乐部(例如,EG Football,曲棍球-由用户输入)。俱乐部被添加到以下ArrayList:
private ArrayList clubs = new ArrayList();
通过以下方法:
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..
}
我的程序正在运行-它使我可以将新的Club对象添加到我的数组列表中,可以查看该数组列表,还可以删除所需的任何内容,等等。
但是,我现在想将该arrayList(俱乐部)保存到文件中,然后我希望以后可以加载该文件,并且相同的arraylist再次存在。
我为此有两种方法(请参见下文),并且一直在尝试使其工作,但还没有运气,任何帮助或建议都将不胜感激。
保存方法(文件名由用户选择)
public void save(String fileName) throws FileNotFoundException {
String tmp = clubs.toString();
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
pw.write(tmp);
pw.close();
}
加载方法(当前代码无法运行-文件为字符串,但需要为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之类的(对于列表中的每个Club)