整数と比較するためにファイルに保存したハイスコアを比較しようとしています。だから私はいつも私のファイルから3文字を得ますが、私がそれをコントロールするならば、私はそれに新しいスコアを入れません。整数と比較するバイト
try{
String FILENAME = "HanoiScore1File";
FileInputStream fos = openFileInput(FILENAME);
byte[] b = new byte[2];
fos.read(b);
fos.close();
Data = new String(b);
Score2 = Integer.parseInt(Data);
}catch (java.io.FileNotFoundException e) {
} catch (IOException e) {
e.printStackTrace();
}
if(Score2>Score){
try{
String FILENAME="HanoiScore1File";
Data=Integer.toString(Score);
FileOutputStream fostemp = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fostemp.write(Data.getBytes());
fostemp.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
コード 'byte [] b = new byte [2]; fos.read(b); 'はファイルから2バイトしか読み込みません。質問に書いているときは3バイトではありません。また、ファイルの現在の内容は何ですか?あなたはそれを比較している「ハイスコア」とは何ですか? –
これは、他のファイルの3バイトのため、Aタイプの間違いでした。私が比較した高い得点はScoreであり、Score2ではファイルの1つが返されます – stevedc
ファイル "HanoiScore1File"の現在の内容は何ですか?あなたはそれを投稿できますか?また、デバッグログをいくつか追加して、比較する前に「Score2」と「Score」の値が何であるかを確認してください。 –