【发布时间】:2016-01-10 10:16:27
【问题描述】:
对于我的游戏,我将用户玩过的游戏数量存储在内部存储的文件中。这可以完美运行,直到数字 195 被存储之后,无论玩了多少游戏,它都不会增加。
public void saveNumGames(){
Log.d("saveNumGames", "Called");
int numGames;
File numGamesFile = new File(mainActivity.getFilesDir(), "numGames");
try {
BufferedInputStream BIS = new BufferedInputStream(new FileInputStream(numGamesFile));
numGames = BIS.read();
}catch (Exception e) {
e.printStackTrace();
numGames = 0;
}
try{
numGames++;
Log.d("numGames", Integer.toString(numGames));
FileOutputStream fos = new FileOutputStream(numGamesFile);
PrintWriter PW = new PrintWriter(new OutputStreamWriter(fos));
PW.write(numGames);
PW.flush();
PW.close();
if(numGames==12){
Games.Achievements.unlock(MainActivity.apiClient, "CgkIlcXhyp4YEAIQDA");
} else if(numGames==50){
Games.Achievements.unlock(MainActivity.apiClient, "CgkIlcXhyp4YEAIQDQ");
}
}catch (Exception e){
e.printStackTrace();
}
}
我的想法是,这是因为数字 195 是一个字节(或位?)中可存储的最大值。如果是这样,我应该怎么做才能防止出现这个数字上限。
【问题讨论】:
标签: java android file byte storage