-2 java dataoutputstream java-io datainputstream
我制作了自己的缓冲式打字机.但我不知道它是否确实如此?
当我退出时,我做了一个缓冲读取器(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;
}
Run Code Online (Sandbox Code Playgroud)
}
如何正确保存所有(整数)?
从这3行开始,看起来你正在保存玩家的名字,然后是硬币计数......
DataOutputStream o = new DataOutputStream(fileOutputStream);
o.writeUTF(Player.playerName);
o.writeInt(Player.coins);
Run Code Online (Sandbox Code Playgroud)
然后尝试再次阅读它们,如下所示:
DataInputStream l = new DataInputStream(fileInputStream);
Player.playerName = l.toString(); // <-- change to l.readUTF()
Player.coins = l.readInt();
Run Code Online (Sandbox Code Playgroud)
我注意到你正在使用l.toString()而不是l.readUTF().
当然你需要使用相应的方法读回数据以保存它吗?
换句话说,如果您保存数据,则o.writeUTF()需要使用回读数据l.readUTF().
喜欢喜欢.
| 归档时间: |
|
| 查看次数: |
890 次 |
| 最近记录: |