flex day4 文件的操作

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写入文件再去保存,
感觉逻辑怪怪的。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值