【发布时间】:2012-05-08 14:38:53
【问题描述】:
我正在尝试将我保存在 A 文件中的高分与整数进行比较。所以我总是会从我的文件中得到三个字符,但是如果我控制它,它不会把我的新分数放进去。
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 个字节。我比较的高分是Score,而Score2中的高分来自文件
-
文件“HanoiScore1File”的当前内容是什么?你能发一下吗?此外,只需添加一些调试日志,以便在比较之前查看“Score2”和“Score”的值。
-
解决了它是答案的组合,以及我自己的愚蠢错误。我发布了一个答案
标签: android integer compare byte