所以我的程序的一部分就是创建一个带名字的卡片。生病,然后检查我的dat文件中是否存在该名称。
首先,我所做的是在我的dat文件中读取并存储到arraylist中。然后我实现一个方法来检查名称是否存在。如果没有,那就继续创作。
但问题是,在创建之后,我需要更新我现有的arraylist,因为我的dat文件已使用新添加的名称进行更新。
我现在想的是清除现有的arraylist,然后再次阅读+存储它。
但是当我介绍clear方法时,我会继续遇到异常。以下是我测试过的代码:
private ArrayList<Cards> cardList;
public void readGameCards()
{
cardList = new ArrayList<Cards>();
//clearCards(this.cardList); -> not sure where to add this
try // get data from dat file and store it into arraylist
{
Scanner myScanner = new Scanner(new File("GameCards.dat"));
while (myScanner.hasNextLine())
{
//converting codes
Cards c = new Cards(//para);
cardList.add(c);
}
myScanner.close();
}
catch (FileNotFoundException fe)
{
System.out.println("...");
}
}
public void clearCards(ArrayList<Cards> cardList)
{
if (!cardList.isEmpty())
{
cardList.clear();
//cardList = new ArrayList<Cards>();
}
}
它适用于第一次运行,但在第二次运行时,新添加的名称不会反映在arraylist中。
答案 0 :(得分:-1)
例外的细节是什么?
如何运行此代码?
readGameCards()每次运行时都会创建一个新的ArrayList。这可能是它“没有反映在arraylist中”的原因