Adobe AIR迷你教程 -- 本地文件的操作(与文件选择器的结合)(2)

http://bbs.airia.cn/AIR/thread-2909-1-1.aspx
接上一篇教程,我们来扩展一些内容。

Demo内容

1. 保存文本框内容到指定路径,创建名为saveFileDemo.xml的文件。
2. 读取txt与xml类型文件到文本框。
3. 重新以文本框的内容更新打开的文件。




1. 保存文本框内容到指定路径,创建名为saveFileDemo.xml的文件。

//打开文件选择器
private function saveFileTo():void{
    var file:File = File.documentsDirectory; //默认为文档文件夹
    file.browseForDirectory("请选择保存路径");  //打开文件夹选择器
    file.addEventListener(Event.SELECT,directoySelectHandle)  //监听文件夹选择事件

}

//用文本框内容创建文件
private function directoySelectHandle(e:Event):void{
    var file:File = new File(e.target.nativePath).resolvePath("saveFileDemo.xml"); //创建名为saveFileDemo.xml的文件
    fileStream.open(file,FileMode.WRITE); //Write方式打开
    var content:XML =
                        {this.content.text}
                   
    fileStream.writeUTFBytes(content.toXMLString());  //将内容写入文件
    fileStream.close()
    Alert.show("文件创建成功","提示")

}

2. 读取txt与xml类型文件到文本框。

//打开类型为txt和xml的文件。
private function openFile():void{
    var file:File = File.documentsDirectory;
    var openFileFilter:FileFilter = new FileFilter("Text/XML", "*.txt;*.xml");  //过滤文件
    file.browseForOpen("请选择要打开的文件",[openFileFilter]); //打开文件选择器
    file.addEventListener(Event.SELECT,fileSelectHandle)   //监听文件选择事件
}

//将打开文件内容写入文本框
private function fileSelectHandle(e:Event):void{
    var file:File = e.target as File;
    fileStream.open(file,FileMode.READ);
    this.content.text = fileStream.readUTFBytes(fileStream.bytesAvailable) //只读方式打开文件,将内容放到TextArea
    this.updateBtn.enabled = true;
    this.saveNew.enabled = false;
    fileStream.open(file,FileMode.WRITE); //以Write方式重新打开文件,这样我们就可以更新它

}

3. 重新以文本框的内容更新打开的文件。

//更新打开的文件
private function saveOpenFile():void{
    fileStream.writeUTFBytes(this.content.text); //更新打开的文件
    fileStream.close()
    Alert.show("文件更新成功","提示")
    this.updateBtn.enabled = false;
    this.saveNew.enabled = true;
}


OK, 下一篇是最后一篇关于文件的操作,讲解Tree控件动态读取文件夹列表,打开选择的文件。

你可能感兴趣的:(thread,xml,Adobe,AIR,bbs)