我正在尝试扫描我拥有的播放器数据文件,并将播放器数据设置为等于文件中的内容。该文件看起来像我想要保存数据并读取播放器数据。我怎么样?
HP = 10
Atk = 2
Def = 5;
我需要将其设置为球员的健康等等。这是我使用的。
File dir = new File("c:\\Project0\\data\\Playerstuff");
if (!dir.exists()) {
if (dir.mkdirs()) {
System.out.println("Directory is created!");
} else {
System.out.println("Failed to create directory!");
}
String fileName="hi";
File tagFile=new File(dir,fileName+".txt");
if(!tagFile.exists()){
try {
FileWriter fw = new FileWriter(tagFile.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write("HP: " + p.getAtk());
bw.close();
Scanner s = new Scanner(tagFile);
s.findInLine("HP: ");
} catch (IOException ie) {ie.printStackTrace(); System.out.println("Error loading game directory");}
}
答案 0 :(得分:0)
不确定为什么你会同时阅读和写作,你保存数据的方式似乎并不适合阅读。我尝试将数据保存为,例如
HP=10
ATK=2
DEF=5
然后当你阅读数据时:
Scanner s = new Scanner(tagFile);
while(s.hasNextLine()) {
String info = s.nextLine();
if (info.startsWith("HP") {
int hp = Integer.parseInt(info.substring(info.indexOf("=" + 1),info.length()));
p.setHP(hp);
}
else if (...) //Etc... for all the other values
}
在没有if / else的情况下,另一种方法是始终按照特定顺序保存数据(例如,首先是hp,然后是atk,然后是def),在这种情况下你不必检查。但这可能会让人感到困惑。