使用JavaIO保存统计数据
我设置了一个文件和一个基本的读写器,但是当我更改值时,它不会写入新值 代码如下: 国际构成水平、实力水平使用JavaIO保存统计数据,java,3d,Java,3d,我设置了一个文件和一个基本的读写器,但是当我更改值时,它不会写入新值 代码如下: 国际构成水平、实力水平 int[] saveStats = { constitutionLevel, strengthLevel }; int constitutionLevelLocation = 0; int strengthLevelLocation = 1; public StatSaver() { constitutionLevel = Constitution.getConstitution
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文件中的值,但当我公开游戏时,这不会起作用,因为每个人都会将统计值设置为无穷大。无论如何,请帮助和感谢提前 因此,在StartSave方法中,您从readPlayer中读取信息,我假定这些信息是存储在文件中的旧值,然后将这些值放入数组中。在updatePlayerStats中,获取数组中的值,并将它们放入两个变量中,覆盖构造函数放入其中的内容。最后,savePlayer方法从数组中获取信息,并将其保存到文件中。您在任何时候都没有更改数组中的值,因此没有向文件中添加新的数字。startSaving不会从此代码中调用。你确定有人叫它吗?当我停下来清理游戏时,我会叫它。