Java - 将 ArrayList 写入和读取 .txt 文件 - BufferedWriter
Java - Writing and Reading ArrayList to and from .txt file - BufferedWriter
一些背景:
我正在为 class 制作基于文本的 RPG 游戏,并且我正在使用 ArrayList
作为库存,因为当然,每当添加另一个项目时它都会不断变化.我希望能够将此 ArrayList
保存到一个 txt 文件中,并且我希望能够将其加载回相同的 ArrayList
以便玩家可以从他们离开的地方继续。
我目前正在使用 FileReader
和 FileWriter
,以及 BufferedReader
和 BufferedWriter
。这是因为 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.
一些背景:
我正在为 class 制作基于文本的 RPG 游戏,并且我正在使用 ArrayList
作为库存,因为当然,每当添加另一个项目时它都会不断变化.我希望能够将此 ArrayList
保存到一个 txt 文件中,并且我希望能够将其加载回相同的 ArrayList
以便玩家可以从他们离开的地方继续。
我目前正在使用 FileReader
和 FileWriter
,以及 BufferedReader
和 BufferedWriter
。这是因为 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.