用Java IO保存3d数据
我设置了一个文件和一个基本的读写器,但当我更改值时,它不会写入新值 以下是代码:
国际体质水平、实力水平
int[] saveStats = { constitutionLevel, strengthLevel };
int constitutionLevelLocation = 0;
int strengthLevelLocation = 1;
public StatSaver()
{
constitutionLevel = Constitution.getConstitutionLevel();
strengthLevel = Strength.getStrengthLevel();
}
public void startSaving()
{
readPlayer("SaveManagement/Stats/save.txt");
updatePlayerStats();
savePlayer("SaveManagement/Stats/save.txt");
}
private void updatePlayerStats()
{
System.out.println("Saving Stats...");
System.out.println(constitutionLevel);
constitutionLevel = saveStats[constitutionLevelLocation];
strengthLevel = saveStats[strengthLevelLocation];
System.out.println(constitutionLevel);
System.out.println("Done Saving Stats");
}
private void readPlayer(String filePath)
{
File inputFile;
BufferedReader inputReader;
try
{
inputFile = new File(filePath);
inputReader = new BufferedReader(new FileReader(inputFile));
for (int i = 0; i < saveStats.length; i++)
{
saveStats[i] = Integer.parseInt(inputReader.readLine());
}
inputReader.close();
} catch (Exception e) { e.printStackTrace(); }
}
private void savePlayer(String filePath)
{
File outputFile;
BufferedWriter outputWriter;
try
{
outputFile = new File(filePath);
outputWriter = new BufferedWriter(new FileWriter(outputFile));
outputWriter.write(saveStats[0] + "\n");
outputWriter.write(saveStats[1] + "\n");
//for (int i = 0; i < saveStats.length; i++)
//{
// outputWriter.write(saveStats[i] + "\n");
//}
outputWriter.close();
} catch (Exception e) { e.printStackTrace(); }
}
正如你所看到的,我有一行代码被注释掉了,但是上面的两行代码做了同样的事情,我只需要输入更多的东西,我可以修改它,做一些更大的事情,但是因为我现在有两个统计数据,我不着急。唯一的短期解决方案是改变价格。txt文件,但当我公开游戏时,这将不起作用,因为每个人都会将属性设置为无穷大。无论如何,请提前帮助和感谢
# 1 楼答案
因此,在startSaving()方法中,从readPlayer()读入信息(我假设是存储在文件中的旧值),然后将这些值放入数组中。在updatePlayerStats()中,获取数组中的值,并将它们放入两个变量中(覆盖构造函数放入其中的内容)。最后,savePlayer()方法从数组中获取信息,并将其保存到文件中。在任何时候都没有更改数组中的值,因此没有向文件中添加新的数字