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

Java-在.txt文件中写入和读取ArrayList-BufferedWriter,java,bufferedreader,filereader,filewriter,bufferedwriter,Java,Bufferedreader,Filereader,Filewriter,Bufferedwriter,一些背景: 我正在为类制作一个基于RPG文本的游戏,并且我正在为库存使用ArrayList,因为当然,每当添加另一个项目时,它都会不断变化。我希望能够将这个ArrayList保存到一个txt文件中,并且能够将它加载回同一个ArrayList中,这样玩家就可以从他们离开的地方重新开始 我目前正在使用FileReader和FileWriter,以及BufferedReader和BufferedWriter。这是因为班上的其他人为我创建了save方法,所以如果我愿意,我真的不知道如何将其更改为其他方法

一些背景:

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

我目前正在使用FileReader和FileWriter,以及BufferedReader和BufferedWriter。这是因为班上的其他人为我创建了save方法,所以如果我愿意,我真的不知道如何将其更改为其他方法。我可以用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循环是这样工作的。要读回数据,您可以阅读整个字符串示例: weapon1、item2、item99生成一个String对象,然后使用String类的split函数使用分隔符拆分字符串,然后构建新数组。示例

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.

非常感谢你!这非常有效,我所做的只是将从txt文件接收到的数组转换为ArrayList。它起作用了!PS我甚至不知道拆分和分隔符的内容,我的课程没有涵盖它: