如何确保打开文件在使用后关闭?
我使用以下代码打开和写入文件:
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;
。
所以任何人都知道为什么会这样或者如何解决这个问题。
答案 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;