flex day4 文件的操作
程序员文章站
2022-05-06 08:11:58
...
File类,FileMode,FileStream,air支持文件同步和异步,在使用异步操作的时候,必须要使用
addEventListener()方法,添加事件监听。以下的介绍是从书上扒下来的,我觉得描述的挺好:
File对象是指向文件系统中文件或目录的路径。使用File对象创建指向文件或者文件夹的指针,
启动与文件或文件夹的交互。
FileStream对象,用于打开文件进行读写。在创建了File对象,指向新文件或者现有文件的指针后,
可以将该指针传递给FileStream对象,然后对文件进行数据流操作。
FileMode类定义了FileStream类的open()和openAsync()方法的fileMode参数中使用的字符串常量。
这些方法的fileMode参数确定了打开文件后的FileStream对象可以进行的操作,包括写入,读取,追加
和更新。
以下只是简单的文件操作。先熟悉一下流程。
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" backgroundColor="#323232"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ private function openFile():void{ //documentsDirectory 是要打开的默认指文档的路径 var file:File = File.desktopDirectory; //可以追加文件过滤的属性 var textFilter:FileFilter = new FileFilter("text","*.as;*.html;*.css;*.txt;*.xml"); file.browseForOpen("选择要打开的文件",[textFilter]); file.addEventListener(Event.SELECT,openDirectorySelect); } private function openDirectorySelect(evt:Event):void{ var fs:FileStream = new FileStream(); txtPath.text = File(evt.target).nativePath; fs.open(File(evt.target),FileMode.READ); txtArea.text = fs.readMultiByte(fs.bytesAvailable,"gb2312"); fs.close(); } private function writeFile():void{ var fs:FileStream = new FileStream(); fs.open(new File(txtPath.text),FileMode.WRITE); fs.writeMultiByte(txtArea.text,"gb2312"); } private function saveFile():void{ var file:File = File.desktopDirectory; file.browseForSave("请保存文件"); file.addEventListener(Event.SELECT,saveEvent); } private function saveEvent(evt:Event):void{ var fs:FileStream = new FileStream(); var url:String = File(evt.target).nativePath+txtName.text; var file:File = new File(url); fs.open(file,FileMode.WRITE); fs.writeMultiByte(txtArea.text,"gb2312"); } ]]> </fx:Script> <mx:TextInput id="txtPath" x="10" y="10" width="321"/> <mx:Button id="btnOpen" x="339" y="10" label="Open" click="openFile()"/> <mx:Button id="btnWrite" x="420" y="10" label="write" click="writeFile()"/> <mx:TextArea id="txtArea" x="10" y="40" width="394" height="276"/> <mx:TextInput id="txtName" x="10" y="324" width="321"/> <mx:Button x="339" y="324" label="Save" click="saveFile()"/> </s:WindowedApplication>
这里是打开和写入,保存文件的码。
有一点思路转不过来,就是在save的时候,应该用什么方法好,我这里的方法总感觉怪怪的,
要在txtName那里输入后缀才行,先用的fs去open,然后在用fs的write写入文件再去保存,
感觉逻辑怪怪的。
上一篇: idea属性文件中文乱码
下一篇: 关于溢出隐藏的详细介绍
推荐阅读