Итак, я написал следующий класс, чтобы сохранить текущее состояние шахматной игры, которую я пишу для финала APCS. Согласно всему, что я прочитал, это должно работать, но это не так. Максимум, что я получил для печати, это "ro00 \ n". Я пробовал несколько вариантов этого кода. Я определил запись как бинарный писатель как BoldWriter (нет правильного имени); Я пробовал с и без приливов. Но это самая удачная версия класса. Если кто-то видит что-то, что я пропустил, любая помощь очень ценится.
class SaveListener implements ActionListener {
String temp;
public void actionPerformed(ActionEvent e) {
System.out.println(">saveInitiated");
try {write = new PrintWriter(new OutputStreamWriter(
new FileOutputStream("Board.txt"), "utf-8"));
/*write = new PrintWriter(new File("Board.txt"), "UTF-8");*/
for (int y = 0; y < 8; y ++) {
for (int x = 0; x < 8; x++) {
System.out.printf(">>y:%d,x:%d\n", y, x);
if (Board[y][x] != null) {
temp = Board[y][x].getType();
switch (temp) {
case "pawn":{write.print("pa");}
break;
case "rook": write.print("ro");
break;
case "knight": write.print("kn");
break;
case "bishop": write.print("bi");
break;
case "queen": write.print("qu");
break;
case "king": write.print("ki");
}
write.flush();
write.print(y);
write.flush();
write.print(x + "\n");
write.flush();
}
else write.print("nu\n");
write.close();
}
}
} catch (FileNotFoundException e1) {System.out.println(">>FileNotFound!");} catch (UnsupportedEncodingException e1) {System.out.println(">>unsupportedEncodingException");}
System.out.println(">saveConcluded");
}
}
У меня есть похожий блок сохранения в другой шахматной программе, который отлично работает.
if (save) {
PrintWriter write = new PrintWriter("Board.txt", "UTF-8");
for (int y = 0; y < board.length; y++) {
for (int x = 0; x < board[y].length; x++) {
write.print(board[y][x] + " ");
}
}
write.close();
System.out.println("Saved");
save = false;
}
Кстати, текст, который я ожидаю увидеть в этом файле: «ro00 \ n kn01 \ n bi02 \ n ki03 \ n qu04 \ n bi05 \ n kn06 \ n ro07 \ n pa00 \ n pa01 \ n pa02 \ n n pa03 \ n pa04 \ n pa05 \ n pa06 \ n pa07 \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n nu \ n pa60 \ n pa61 \ n pa62 \ n pa63 \ n pa64 \ n pa65 \ n pa66 \ n pa67 \ n ro70 \ n kn71 \ n bi72 \ n ki73 \ n qu74 \ n bi75 \ n kn76 \ n ro77 \ ". (пробелы вставлены для удобства чтения)