一些背景知识:
我正在为课堂制作一个基于RPG文本的游戏,我正在使用ArrayList
作为库存,因为当然,每当添加另一个项目时它会不断变化。我希望能够将此ArrayList
保存到txt文件中,我希望能够将其加载回同一个ArrayList
,以便播放器可以从中断的地方继续播放。
我目前正在使用FileReader
和FileWriter
以及BufferedReader
和BufferedWriter
。这是因为班上的其他人为我制作了保存方法,所以如果我愿意的话,我真的不知道怎么把它改成别的东西。我可以用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。我尝试了一些东西,但我的程序每次都会爆炸。
答案 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.