Я создал свой собственный буферизатор, который работает. Но я не знаю, действительно ли это происходит?DataInputStream и DataOutputStream
Я сделал буферизующий инструмент, когда я выхожу из системы. У меня есть (200 монет), и когда я вхожу в систему, я получаю (545453 монеты) или другую сумму. Я уверен, что это буферизатор, ПОЖАЛУЙСТА, ПОМОГИТЕ!
public static int coins;
private static final String DIR = "./Data/";
public static boolean SavePlayer;
public static void saveAll() {
SavePlayer = true;
if (!SavePlayer) {
System.out.println("[WoG Error]: Their was an error saving players.");
return;
}
saveGame();
}
public static boolean saveGame() {
if (Player.playerName == null) {
return false;
}
try {
File file = new File(DIR + Player.playerName.toLowerCase() + ".dat");
if (!file.exists())
file.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream(file);
DataOutputStream o = new DataOutputStream(fileOutputStream);
o.writeUTF(Player.playerName);
o.writeInt(Player.coins);
//o.writeInt(Player.height);
o.close();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
public static boolean loadGame() throws InterruptedException {
try {
File file = new File(DIR + Player.playerName.toLowerCase() + ".dat");
if (!file.exists()) {
System.out.println("[WoG Error] Sorry but the account does not exist.");
return false;
}
FileInputStream fileInputStream = new FileInputStream(file);
DataInputStream l = new DataInputStream(fileInputStream);
Player.playerName = l.toString();
Player.coins = l.readInt();
//Player.height = l.readInt();
l.close();
fileInputStream.close();
Player.home();
} catch (final IOException e) {
e.printStackTrace();
return false;
}
return true;
}
}
Как мне сделать это сохранить все (целые числа) правильно?
Какой буферный писатель? Какой буфер? Какой писатель? Все, что у вас есть, это DataOutputStream, который не является ни буфером, ни Writer. – EJP
И почему вы устанавливаете «SavePlayer» на «true», а затем сразу проверяете его на «false»? Это бессмысленно. – EJP
И вам не нужно вызывать 'File.createNewFile()'. Вызов 'new FileOutputStream()' делает это. – EJP