在Actionscript 3中打开文件后,如何确保文件已关闭?

时间:2016-05-23 13:45:37

标签: actionscript-3 flex flex4

如何确保打开文件在使用后关闭?

我使用以下代码打开和写入文件:

mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
// mDialog.getWindow().setBackgroundDrawableResource("#0069ad");
mDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);

我的问题是,如果我第一次保存课程,那么它会完美地保存课程,但修改后如果我再次保存相同的课程,那么我会收到以下错误:

“错误:错误#3013:正在使用文件或目录。在flash.filesystem”

我不知道为什么它显示这样,因为我在文件写入后已经写过 var mFile:File = new File (); var actvityDirectoryXMLFile:File = mFile.resolvePath ( filePath ); var stream:FileStream = new FileStream (); stream.addEventListener ( Event.COMPLETE , onFileWriteComplete ); stream.open ( actvityDirectoryXMLFile , FileMode.WRITE ); stream.writeUTFBytes ( xml.toXMLString ()); stream.close (); stream.openAsync ( actvityDirectoryXMLFile , FileMode.READ ); mFile = null; actvityDirectoryXMLFile = null;

所以任何人都知道为什么会这样或者如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

编写文件后,使用以下代码

打开文件
stream.openAsync ( actvityDirectoryXMLFile , FileMode.READ );

所以删除它,这就是你的文件现在被选择的原因,或者在该行之后使用stream.close ();,如下面的代码

    var mFile:File = new File ();
    var actvityDirectoryXMLFile:File = mFile.resolvePath ( filePath );
    var stream:FileStream = new FileStream ();

    stream.addEventListener ( Event.COMPLETE , onFileWriteComplete );
    stream.open ( actvityDirectoryXMLFile , FileMode.WRITE );
    stream.writeUTFBytes ( xml.toXMLString ());
    stream.close ();
    //stream.openAsync ( actvityDirectoryXMLFile , FileMode.READ );
    mFile = null;
    actvityDirectoryXMLFile = null; 

或以下代码

    var mFile:File = new File ();
    var actvityDirectoryXMLFile:File = mFile.resolvePath ( filePath );
    var stream:FileStream = new FileStream ();

    stream.addEventListener ( Event.COMPLETE , onFileWriteComplete );
    stream.open ( actvityDirectoryXMLFile , FileMode.WRITE );
    stream.writeUTFBytes ( xml.toXMLString ());
    stream.close ();
    stream.openAsync ( actvityDirectoryXMLFile , FileMode.READ );
    stream.close ();
    mFile = null;
    actvityDirectoryXMLFile = null;