`
marcoojoey
  • 浏览: 9274 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

相关推荐

    flex in a week day2

    在“FlexInAWeek_Day2_Projects”文件中,你可能会找到相关的代码示例和练习,通过实际操作加深对这些概念的理解。通过创建和调整不同布局,你可以直观地看到这些属性如何影响元素的排列和对齐。记住,实践是掌握新...

    Flex与JSON及XML的互操作

    ### Flex与JSON及XML的互操作 Flex作为一种强大的开源框架,允许开发者利用MXML(一种基于标签的语言)和ActionScript 3构建出丰富的互联网应用程序(RIA)。本文将深入探讨Flex如何与JSON和XML进行互操作,这对于...

    flex 设置背景音乐

    - 监听事件,例如当音频播放完成时触发特定操作。 #### 二、详细解析示例代码 1. **XML声明与命名空间**: ```xml ();" xmlns:views="com.util.*"&gt; ``` - `mx:Application`:定义了Flex应用程序的根容器。 ...

    day3-flex-example

    【压缩包子文件的文件名称列表】"day3-flex-example-master"表明这是项目的主分支或源代码仓库。通常,这样的命名结构意味着这是一个GitHub或其他版本控制系统上的项目,"master"代表主分支,而"day3-"可能是项目...

    day10-Dad jokes(老爸笑话)

    在"day10-Dad jokes"项目中,HTML文件可能包含了笑话的结构,比如标题、段落用于展示笑话内容,以及可能的按钮或链接来触发JavaScript事件。例如,一个笑话可能会被封装在一个`&lt;div&gt;`标签中,通过类名或ID进行标识,...

    课件.rar

    9. **Day14**: 文件操作,读写本地文件,使用image_picker选择图片,使用path_provider获取应用目录。 10. **Day15**: 引入第三方库,了解pubspec.yaml文件,学习如何添加和使用依赖。 11. **Day16**: 动画制作,...

    day22-Drawing App(绘图应用程序)

    display: flex; justify-content: center; align-items: center; height: 100vh; background-color: #f0f0f0; } canvas { border: 1px solid #ccc; } ``` 然后,JavaScript是实现交互和动态功能的关键。在`...

    day33-Notes App(便利贴笔记)

    在本项目"day33-Notes App(便利贴笔记)"中,我们将探索如何使用HTML、CSS和JavaScript技术创建一个简单但实用的在线便利贴应用。这个应用将允许用户创建、编辑和删除个人的便签,模拟纸质便利贴的功能,但更加便捷...

    day48-Random Image Feed(随机图片显示)

    在本项目"day48-Random Image...4. 随机数生成和数组操作 5. 定时器函数`setInterval`来实现定时触发事件 通过这个项目,你可以学习到如何结合HTML、CSS和JavaScript创建动态、交互式的网页元素,提升网页的用户体验。

    练习前端-CSS权重计算、复杂选择器、基础属性-day05

    在Day05.css和Day05.html文件中,你可以实践这些概念,通过编写和调试CSS代码,加深对权重计算、复杂选择器和基础属性的理解。通过实际操作,你将更好地掌握如何有效地控制网页元素的样式,提升前端开发技能。

    PostgreSQL 性能优化培训 3 DAY

    4. **国际化语言设置** - 修改`/etc/sysconfig/i18n`文件,设置系统默认语言为“en_US.UTF-8”。 5. **SSH配置优化** - 在`/etc/ssh/sshd_config`和`/etc/ssh/ssh_config`文件中禁用DNS解析、公钥认证和GSSAPI认证...

    导航代码练习code

    7. **实践操作**: "day10" 文件可能包含了第10天的学习代码示例,你可以通过查看、修改和运行这些代码来加深对`display`属性的理解。这可能包括创建不同类型的导航条,如水平导航、下拉菜单等,通过调整`display`...

    Steph-s-Amazing-Day-Scheduler

    4. **CSS集成**:虽然标签仅提供了基础布局,但为了使日程安排器美观并易于阅读,通常会引入CSS(Cascading Style Sheets)来控制元素的样式。这可能通过在`&lt;head&gt;`中添加`&lt;style&gt;`标签内联编写,或者链接外部CSS...

    2015年WEB前端开发笔试题.pdf

    4. Web标准与W3C:Web标准是W3C制定的一套规则,包括HTML、CSS、JavaScript等,旨在提高互操作性、可访问性和可维护性。遵循标准有助于创建更兼容、更高效、更易于维护的网站。 5. JavaScript类型转换:强制类型...

    AMF3 C++ 源码(修改版)

    AMF3,全称为Action Message Format 3,是Adobe公司为Flash Player和Flex应用程序之间进行数据交换设计的一种高效二进制序列化格式。这个“AMF3 C++ 源码(修改版)”提供了对AMF3协议的C++实现,支持序列化和对象化...

    div css练习div css练习div css练习div css练习

    在CSS中,我们可以利用以下关键概念来操作div: 1. **选择器**:CSS选择器用于选取我们想要应用样式的HTML元素。例如,`div`选择器可以选取所有的div元素。我们还可以使用类选择器(`.class-name`)和ID选择器(`#...

    下载、编译、运行android 7.1系统详解(ubuntu 16.0.4)

    在本文中,我们将深入探讨如何在Ubuntu 16.0.4操作系统上下载、编译并运行Android 7.1系统。Android 7.1引入了许多新特性,如任务切换优化、省流量模式以及谷歌的Daydream VR平台,这些都极大地增强了用户体验。对于...

    ConstellationsWebpage:一个网页,其中包含有关使用HTML,CSS和JavaScript的著名星座的一些信息

    例如,使用`color`属性设置文本颜色,`font-family`定义字体,`background-color`设置背景色,`margin`和`padding`调整元素间距,`display`属性用于更改元素的显示方式,如设置为`flex`或`grid`进行响应式布局。...

Global site tag (gtag.js) - Google Analytics