嘿伙计们,我在这里粘贴了我的代码。 Dialog.inform包含一个“长”值,这是玩家的得分。如果我想将它写入文件,我需要将其转换为byte的int。我正在将垃圾值写入文件。任何人都可以帮我解决这个问题吗?我想打印(经过/ 34)
的内容Dialog.inform(“恭喜你得分:”+(已过去/ 34));
try
{
FileConnection fc = (FileConnection)Connector.open("file:///SDCard/Rashmi.txt");
// If no exception is thrown, then the URI is valid, but the file may or may not exist.
if (!fc.exists())
{
fc.create(); // create the file if it doesn't exist
}
OutputStream outStream = fc.openOutputStream();
int lp=safeLongToInt(elapsed/34);
outStream.write("Rashmi".getBytes());
outStream.write(lp);
outStream.close();
fc.close();
答案 0 :(得分:1)
好的,既然您要将分数保存到文件中,那么您可能希望该分数可以作为字符串查看。当你查看该文件时,我猜你看到“Rashmi”这个词后跟一个垃圾字符。变量lp未正确打印的原因是因为数字的字符串值与其数值不同。例如,二进制值2为10,而“2”的ASCII值为00110010(或十进制为50)。当你调用outStream.write(lp)时,这是打印lp的数值而不是它的字符串值。简而言之,您需要将数值转换为字符串。尝试这样的事情:
String text = "Rashmi" + (elapsed/34);
outStream.write(text.getBytes());