通过读取dat文件来更新Arraylist

时间:2018-05-05 06:30:49

标签: java arraylist

所以我的程序的一部分就是创建一个带名字的卡片。生病,然后检查我的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中。

1 个答案:

答案 0 :(得分:-1)

例外的细节是什么?

如何运行此代码?

readGameCards()每次运行时都会创建一个新的ArrayList。这可能是它“没有反映在arraylist中”的原因