Java - 将 ArrayList 写入和读取 .txt 文件 - BufferedWriter

Java - Writing and Reading ArrayList to and from .txt file - BufferedWriter

一些背景:

我正在为 class 制作基于文本的 RPG 游戏,并且我正在使用 ArrayList 作为库存,因为当然,每当添加另一个项目时它都会不断变化.我希望能够将此 ArrayList 保存到一个 txt 文件中,并且我希望能够将其加载回相同的 ArrayList 以便玩家可以从他们离开的地方继续。

我目前正在使用 FileReaderFileWriter,以及 BufferedReaderBufferedWriter。这是因为 class 中的其他人为我制作了保存方法,所以我真的不知道如何将其更改为其他方法。我可以用 BufferedWriter 做我想做的事吗?我真的不知道我应该在这里放什么样的代码,但如果有帮助的话,这就是我声明 ArrayList 的方式:

ArrayList<String> bagWeapons = new ArrayList<String>();

而我的保存方法是:

void save(){
    try {
        FileWriter fileWriter =
            new FileWriter(fileName);`

        BufferedWriter bufferedWriter =
            new BufferedWriter(fileWriter);

        //EDIT ZONE         


        bufferedWriter.write(name); //playerName
        bufferedWriter.newLine();
        String hpSave = String.valueOf(hp1); //tempHP conversion
        bufferedWriter.write(hpSave); //playertempHP
        bufferedWriter.newLine();
        String fullhpSave = String.valueOf(fullHP);
        bufferedWriter.write(fullhpSave); //playerfullHP
        bufferedWriter.newLine();


        for(int i=0; i<bagWeapons.size(); i++)
            bufferedWriter.write(bagWeapons.get(i) + ","); //player weapon inventory
        //END EDIT ZONE

        bufferedWriter.close();
    }
    catch(IOException ex) {
        System.out.println(
            "Error writing to file '"
            + fileName + "'");  
    }
}

"for" 循环是这样工作的吗?文本文件上的打印内容是:WeaponName,WeaponName,WeaponName, ....

我不知道我将如何写回 ArrayList。我已经尝试过一些东西,但我的程序每次都会崩溃。

for 循环的工作方式类似于 this.To 读回数据,您可以读取整个字符串示例: weapon1,item2,item99 变成一个字符串对象,然后使用字符串 class 的拆分函数用分隔符“,”拆分字符串,然后构建新的 array.example.

String text="weapon1,item2,item99";
String parts[]=text.split(",");
for(int i=0;i<parts.length();i++)
  Inventory.add.parts[i]  // or however you set it up.