首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免错误#2030:遇到文件结束。- AS3

如何避免错误#2030:遇到文件结束。- AS3
EN

Stack Overflow用户
提问于 2014-04-27 13:30:27
回答 1查看 6.4K关注 0票数 0

我试着让这个游戏在闪存/ AS3中进行,只要玩家不输就行。球员上场时间越长,他/她的得分就越高。

我还需要保存高分,所以我决定使用文本文件保存这个。我使用模式更新打开该文件,以便如果该文件不存在,则创建该文件并进行读写。但是很明显,当第一次创建文件时,它是空的,所以当我试图读取文件中的数据时,它返回错误#2030。然后,它不会执行任何涉及文件流的代码。而且,即使文件中有一个数字,我也不能读它,因为程序不知道高分将是多少位数。这是我正在使用的代码:

代码语言:javascript
复制
var file:File = File.documentsDirectory;
file = file.resolvePath("hscore.txt");
var fileStream:FileStream = new FileStream();
fileStream.openAsync(file, FileMode.UPDATE);
var buffer:Number = fileStream.readInt();
if (buffer > 0){
    if (score > buffer){
        buffer = score;
        fileStream.writeInt(buffer);
    }
    else{
        highScore.text = String(buffer);
    }
}
else{
    fileStream.writeInt(score);
    highScore.text = String(score);
}
fileStream.close();

我尝试使用readUTF/writeUTF和readUTFBytes/writeUTFBytes,而不是readInt/writeInt,但是对于readUTF/writeUTF,它只会给出相同的错误,对于readUTFBytes/writeUTFBytes,程序需要知道高分是多少位数。如果有人知道如何避免2030年的错误,或者知道如何读取文件而不到达末尾,或者知道如何查看文件中有多少位数,请告诉我。

我本可以在文件中添加一行,告诉程序有多少位数,但是当文件是新的时,文件流将到达文件的末尾,同时试图读取数字数。我也对其他储存高分的方法持开放态度,并在以后阅读。提前感谢您的帮助。

我试着用Adobe为Android做这件事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-27 18:26:25

根据评论中的帮助回答我自己的问题:

  1. 打开并关闭该文件而不进行任何更改,以便如果文件不存在,则创建该文件。
  2. 检查文件大小,1字节=1位(存储在UTF-8中).
  3. 读取适当的字节数,根据需要进行更改等]
  4. 避免2030错误!:D

感谢“维斯珀和克雷格”

*编辑*

意识到你不需要在第一步关闭文件.

*编辑2*

不是UTF-8,ASCII

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23324031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档