- 浏览: 1169589 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (350)
- Ajax研究 (2)
- javascript (22)
- struts (15)
- hibernate (12)
- spring (8)
- 我的生活 (28)
- jsp (2)
- 我的随笔 (84)
- 脑筋急转弯 (1)
- struts2 (2)
- ibatis (1)
- groovy (1)
- json (4)
- flex (20)
- Html Css (5)
- lucene (11)
- solr研究 (2)
- nutch (25)
- ExtJs (3)
- linux (6)
- 正则表达式 (2)
- xml (1)
- jetty (0)
- 多线程 (1)
- hadoop (40)
- mapreduce (5)
- webservice (2)
- 云计算 (8)
- 创业计划 (1)
- android (8)
- jvm内存研究 (1)
- 新闻 (2)
- JPA (1)
- 搜索技术研究 (2)
- perl (1)
- awk (1)
- hive (7)
- jvm (1)
最新评论
-
pandaball:
支持一下,心如大海
做有气质的男人 -
recall992:
山东分公司的风格[color=brown]岁的法国电视[/co ...
solr是如何存储索引的 -
zhangsasa:
-services "services-config ...
flex中endpoint的作用是什么? -
来利强:
非常感谢
java使用json所需要的几个包 -
zhanglian520:
有参考价值。
hadoop部署错误之一:java.lang.IllegalArgumentException: Wrong FS
买了战争机器2,写完教程准备杀到睡觉,现在先做第一步,写教程。AIR的文件操作不难,看完教程应该可以满足你对文件的所有基本操作。这篇教程主要以实际操作中遇到的情况来讲解
我们想想文件操作都会有什么内容,无非是创建,修改,删除,移动,拷贝。在这个过程中我们会涉及到一些周边的操作,比如文件夹,文件选择器,文件列表,文件信息获取等。 我就围绕创建,修改,删除,移动,拷贝来展开我们的教程。因为内容比较多,基于迷你教程每篇都短小,易读的原则。我分为两篇,今天先讲第一篇,基本的操作,下一篇我再加入上面所说周边的操作相对深一步的讲解。
Air的文件操做主要涉及两个类,FIle和FileStream。一般来说我们不会直接以文本形式保存文件,那样的内容不易于修改,所以这里我以xml 文件为例。
Note: 下面所有的function可以直接复制到你的代码中运行
1.创建新文件。
public function createFileDemo():void{
var file:File = File.desktopDirectory.resolvePath(”test.xml”) //尝试从系统桌面获取test.xml文件。
var fileStream:FileStream = new FileStream(); // 创建FileStream 对象,用于读写文件
fileStream.open(file,FileMode.WRITE); //以WRITE方式打开file, 如果file中对应的文件不存在,创建新文件
//准备文件的内容
var content:XML =
我们的第一个文件创建完毕
fileStream.writeUTFBytes(content.toXMLString()); //像文件中写入内容。
fileStream.close(); //完成写入,这时我们打开桌面的test.txt可以看到内容。
}
上面五句代码让我在我的桌面创建了名为test.xml的文件,并且写入了content。
这里有三个地方我们要注意
1. File.desktopDirectory — 因为AIR可以在Mac和Windows下运行,所以我们最好不要指定固定的地址,这里File.desktopDirectory的意思就是指向我系统的桌面,因为我是mac,所以实际返回的是 /kevinluo/Desktop. 除此之外我们还可以得到如下面这些地址
File.documentsDirectory; //指向用户文档文件夹
File.applicationDirectory; //应用程序安装目录
File.getRootDirectories(); //文件系统根目录
等等,我就不一一列举了,具体的大家可以看File帮助中描述。
2.File.desktopDirectory.resolvePath(”test.xml”) — 获取桌面下的test.xml。这里我们还可以这样写
var file:File = File.desktopDirectory
file = file.resolvePath(”test.xml”)
不过我建议还是直接写在一排,如果像这样分开写的话,当fileStream.open(file,FileMode.WRITE) 打开文件时,如果文件不存在就会报错而不会像上面那样创建新的文件。
3. fileStream.open(file,FileMode.WRITE) –FileMode.WRITE是打开文件的方法,打开文件的方法一共有如下四种
FileMode.READ // 只读方式打开文件
FileMode.WRITE // 写方式打开文件,文件的原有内容会被清除。文件不存在的话创建新文件
FileMode.APPEND //追加方式打开文件,写入的内容总是会添加到文件的末尾。文件不存在的话创建新文件
FileMode.UPDATE //直接打开文件,可以根据需要在指定位置插入数据。文件不存在的话创建新文件
这里我们以WRITE方式创建了新文件,并写入了“我们的第一个文件创建完毕”。
2. 读取已有的文件,修改内容,再更新文件。
publuc function modifyFileDemo():void{
var file2:File = File.desktopDirectory.resolvePath(”test.xml”); //读取刚才创建的test.xml
var fs:FileStream = new FileStream();
fs.open(file2,FileMode.READ); //以只读方式打开
var ct:XML = new XML(fs.readUTFBytes(fs.bytesAvailable)); //获取xml内容
ct.content = “我们的第一个文件修改完毕” //修改content节点下的内容
fs.open(file2,FileMode.WRITE); //重新以写方式打开文件,目的在于清除原有的内容
fs.writeUTFBytes(ct.toXMLString()) //写入修改过后的XML
fs.close()
}
这里我用了READ和WRITE的组合。在实际的使用中我们可以判断一个xml文件的大小来限制单个文件写入过大。
3.删除文件。
删除文件是最简单的。
public function deleteFIleDemo():void{
var file2:File = File.desktopDirectory.resolvePath(”test.xml”);
if(file2.exists){ //判断文件是否存在
file2.deleteFile() //删除文件
}
}
如果使用file2.moveToTrash()则将文件移到垃圾箱
4.拷贝文件/移动文件
public function copyFileDemo():void{
var sourceFile:File = File.desktopDirectory.resolvePath(”test.xml”) //获取源文件
var newFile:File = File.desktopDirectory.resolvePath(”test2.xml”) //创建目标文件
sourceFile.copyTo(newFile,true) //执行拷贝,如果是移动的话sourceFile.moveTo(newFile,true)
}
5. 异步与同步
AIR对文件的操作分为异步与同步两种方式。上面1–4介绍的是同步方式,其中的一些方法有另一个异步方式,看下面的列表
File.copyTo() — File.copyToAsync()
File.moveTo() — File.moveToAsync()
File.deleteDirectory() — File.deleteDirectoryAsync()
File.deleteFile() — File.deleteFileAsync()
File.getDirectoryListing() - File.getDirectoryListingAsync()
File.moveToTrash() — File.moveToTrashAsync()
FileStream.open — FileStream.openAsync()
使用异步方式时我们需要监听EVENT.COMPLETE和IOErrorEvent.IO_ERROR事件来获取file的操作结果。我拿上面的拷贝做个例子
pirvate funnction copyFile(sourceFIlePath:String, targetFIlePath:String):void{
var sourceFile:File = File.desktopDirectory.resolvePath(sourceFIlePath) //获取源文件
var newFile:File = File.desktopDirectory.resolvePath(targetFIlePath) //创建目标文件
sourceFile.addEventListener(Event.COMPLETE,completeHandle) //监听文件操作complete事件
sourceFile.copyToAsync(newFile,true) ; //开始拷贝,异步方式
this. showLoadingBar() //打开loading图标
}
private function completeHandle():void{
Alert.show(”拷贝文件完成”)
this.closeLoadingBar() //关闭loading图标
}
异步方式的好处是我们可以从中实行一些别的操作,比如出现一个loading的提示之类。
OK, 休息了
发表评论
-
flex和java交互实现实现无限接树形结构
2009-07-30 18:30 1681数据库表(Category)的设计为: id p ... -
Flex与Javascript互相通信
2009-07-27 14:55 2414Flex与Javascript互相通信。(1):在Flex中有 ... -
关于一篇Flex和JSON结合使用的好文章
2009-07-19 23:42 2295今天无意中发现了一篇好文章(InfoQ)有关FLex和JSON ... -
flex有用网站学习
2009-07-18 10:42 2259这篇文章详细讲述了Alert组件 一步一步学Flex系列--- ... -
完成了flex和java结合的完整的一个例子
2009-07-17 00:13 2791通过做这个例子学到了很多,以前也做过这样的例子。都是做一遍没怎 ... -
Flex中提交Servlet后返回xml乱码的处理
2009-07-14 22:35 1819郁闷了好半天。为什么我从as中提交给servlet后,serv ... -
flex中endpoint的作用是什么?
2009-04-16 10:43 5869endpoint <channel-definitio ... -
用flex如何显示数字时钟
2009-03-30 18:01 1971刚好今天做到这一块, ... -
监测网络状态,离线/在线应用程序的实现
2009-03-29 17:07 2468AIR与Flex web应用的另一区别在于可以动态监测网络状态 ... -
创建多窗口以及弹出窗口与父窗口的通讯
2009-03-29 17:05 2193今天说一下AIR中的window, ... -
在Flex builder3 中创建、发布AIR程序以及 AIR程序的安装运行
2009-03-29 17:03 3963这篇教程算是AIR的 Hello world,写给那些知道一 ... -
如何使DataGrid中某一列变为手型
2009-03-24 15:57 723可以使用linkButton,看代码吧 <mx ... -
神奇的DataGrid
2009-03-24 15:55 1906创建固定表头、表格体滚动的DataGrid http://de ... -
flex 中的restrict详解
2009-03-24 11:28 4475除 .$ ^ { [ ( | ) * + ? \ 外,其他字符 ... -
FLEX问题总汇
2009-03-21 23:23 1220希望能够帮助一些新人对flex的一些基本理解.1:flex是否 ... -
比较好的flex站点
2009-03-10 22:57 1292一、国外站点 1.资源 类Adobe Flex 2 Compo ... -
flex相关的一些资料
2009-02-17 22:50 1551Flex SDK 3.1 是一个Flex SDK里程碑式的版本 ... -
flex编程基础
2009-01-23 10:38 1555AS 3.0 不是 AS 2.0 简单的升级 AS 3.0 支 ... -
flex学习的好地方
2009-01-23 10:35 1070http://examples.adobe.com/flex3 ...
相关推荐
一、Idea关联的maven本地仓库配置文件settings.xml (1)必须使用默认文件名 D:\developsoft\javaweb\commonPlugins\maven\apache-maven-3.8.1_first\conf\settings.xml 二、Myeclipse关联的maven本地仓库配置文件...
c#开发的本地文件夹和文件管理工具,以及对于XML文件的操作,代码可以直接运行。
使用dom4j 和本地dom 解析xml 文件
Qt读写Xml文件;QTreeWidget加载显示Xml文件内容;QTreeWidget项导出保存为Xml;QTreeWidget项实现可拖动
读取XML本地化文件并解析
sax解析xml本地读取xml,希望对你有用
NULL 博文链接:https://filer325.iteye.com/blog/851734
读取路径导出至本地,其中包含excel数据转换
c#读取xml文件增加结点删除节点并在listview中显示xml文件内容
android下解析xml文件的demo
cocos2d-x 读取本地的xml文件,可以实现图文混排效果
XML配置文件连接Oracle数据库
XML文件保存到本地,并进行解析,保存路劲自定义配置。
将数据写出到XML文件中去,或者是读取XML文件中的数据并进行操作
有时候我们需要修改XML文件到服务器,来保存我们客户端用户修改的信息
该项目主要是实现将本地文件上传到FTP服务器中,主要有以下功能: 1、可以定时自动上传也可以手动上传 2、通过XML文件可以配置FTP服务器信息 3、自动上传时需要配置上传文件所在本地的文件夹,也通过XML进行配置 4、...
此算法实现是基于Xpath的xml文件查询,只要输入Xpath路径(全路径)就能返回目标节点信息,同时也支持数据的更新设置。
JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。
QT读取xml文件将所有节点保存到treewidget中
silverlight读取xml数据文件