【发布时间】:2013-09-03 14:54:00
【问题描述】:
我制作了自己的缓冲写入器,它可以工作。但不知道是不是真的?
我在注销时创建了一个缓冲阅读器,我有(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。
-
你为什么将“SavePlayer”设置为“true”,然后立即测试它是否为“false”?这是没有意义的。
-
而且您无需致电
File.createNewFile()。调用new FileOutputStream()会这样做。
标签: java java-io datainputstream dataoutputstream