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

时间:2015-05-06 02:45:16

标签: java bufferedreader filereader filewriter bufferedwriter

一些背景知识:

我正在为课堂制作一个基于RPG文本的游戏,我正在使用ArrayList作为库存,因为当然,每当添加另一个项目时它会不断变化。我希望能够将此ArrayList保存到txt文件中,我希望能够将其加载回同一个ArrayList,以便播放器可以从中断的地方继续播放。

我目前正在使用FileReaderFileWriter以及BufferedReaderBufferedWriter。这是因为班上的其他人为我制作了保存方法,所以如果我愿意的话,我真的不知道怎么把它改成别的东西。我可以用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。我尝试了一些东西,但我的程序每次都会爆炸。

1 个答案:

答案 0 :(得分:0)

for循环的工作方式如下。要读回数据,您可以阅读整个字符串示例: 将weapon1,item2,item99放入String对象中,然后用分隔符&#34;,&#34;拆分String。使用string类的split函数,然后构建新的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.