游戏人生 的日志 — windows live 日志

1255人阅读
快速上手例:
testXML:XML;var file:File =
File.documentsDirectory.resolvePath(&Mousebomb/test.xml&);var fileStream:FileStream =
new FileStream();fileStream.open(file,
FileMode.READ);testXML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));fileStream.close();
例中使用readUTFBytes()方法读取内容并转换为XML对象。
testXML:XML =&mousebomb&&site&www.mousebomb.org&/site&&blog&&/blog&&/mousebomb&;var file:File = File.documentsDirectory.resolvePath(&Mousebomb/test.xml&);var fileStream:FileStream = new FileStream();fileStream.open(file, FileMode.WRITE);var outputString:String = '&?xml version=&1.0& encoding=&utf-8&?&';outputString += testXML.toXMLString();fileStream.writeUTFBytes(outputString);fileStream.close();
写XML也一样简单,创建File对象和FileStream对象,使用writeUTFBytes()写入数据。
要完成读写文件操作无非就是这几步:
1. 创建File对象指向文件路径
2. 初始化FileStream对象
3. 使用FileStream的open()或openAsync()方法
4. 若使用的是异步的openAsync()方法则需要为FileStream设置事件监听
5. 加入所需的读写数据代码
6. 完成文件操作后执行FileStream的close()方法
使用FileStream要了解的知识
1. FileMode
FileStream的open()和openAsync()方法都包含一个fileMode参数,该参数用于设置:
读取文件能力写入文件能力是否总在文件末尾追加数据(写数据时)文件不存在时如何操作(或文件的父级不存在时)
具体值包括
FileMode值
FileMode.READ
设置文件打开方式为只读
FileMode.WRITE
设置文件打开方式为写数据。若文件不存在,则创建之;若文件存在,则该文件所有存在数据被删除。
FileMode.APPEND
设置文件打开方式为追加。若文件不存在,则创建之;若存在,则文件所有存在数据不被覆盖,所有写入的数据从文件末尾开始。
FileMode.UPDATE
设置文件打开方式为读写。若文件不存在,则创建之。设置该模式通常用于随机读写访问文件。可以从文件的任意位置读取,写入数据时,只有写入位置的存在字节被覆盖,其他所有字节不受影响。
2. position
该属性决定下一个数据读写操作进行的位置。
在读写操作前,设置position属性为文件中的有效位置,比如:
myFile:File =
File.documentsDirectory.resolvePath(&Mousebomb/site.txt&);var myFileStream:FileStream =
new FileStream();myFileStream.open(myFile,
FileMode.UPDATE);myFileStream.position =
8;myFileStream.writeUTFBytes(&hello&);
该例在位置8处写入UTF编码的字符串“hello”
新打开的FileStream对象的position值为0,在读文件操作前,position的值必最小为0并小于文件总字节数。
position的值仅会在以下情况下改变:
直接设置该属性值执行读取操作执行写入操作
当执行读/写操作时,position的值会立即自增读/写的字节数,再次执行读/写操作时会从新的position位置开始:
myFile:File =
File.documentsDirectory.resolvePath(&Mousebomb/test.txt&);var myFileStream:FileStream =
new FileStream();myFileStream.open(myFile,
FileMode.UPDATE);myFileStream.position =
4000;trace(myFileStream.position);
// 4000myFileStream.writeBytes(myByteArray,
0, 200);trace(myFileStream.position);
position有一个例外:若文件打开模式设置为append(追加模式),则position属性不会随着写操作变化。在追加模式下,数据总是往文件末尾写,与position无关。
异步方式打开文件,写数据操作在下一行代码执行时并没有结束。这怎么办呢?没关系,你可以按顺序的调用多个异步操作,AIR运行环境会逐个执行:
myFile:File =
File.documentsDirectory.resolvePath(&Mousebomb/test.txt&);var myFileStream:FileStream =
new FileStream();myFileStream.openAsync(myFile,
FileMode.WRITE);myFileStream.writeUTFBytes(&hello&);myFileStream.writeUTFBytes(&world&);myFileStream.addEventListener(Event.CLOSE,
closeHandler);myFileStream.close();trace(&started.&);closeHandler(event:Event):void{trace(&finished.&);}
该例会输出:
你可以在异步读写操作调用后,立即设置position的值,下次读写操作将换作从那个位置开始。比如:
myFile:File =
File.documentsDirectory.resolvePath(&Mousebomb/test.txt&);var myFileStream:FileStream =
new FileStream();myFileStream.openAsync(myFile,
FileMode.UPDATE);myFileStream.position =
4000;trace(myFileStream.position);
// 4000myFileStream.writeBytes(myByteArray,
0, 200);myFileStream.position =
300;trace(myFileStream.position);
3. 根据数据格式,选择合适的读写操作
硬盘上的每个文件都是字节集合。在AS中,文件中的数据总是可以描述为ByteArray.比如下面的代码把文件数据读取到bytes这个ByteArray中:
myFile:File =
File.documentsDirectory.resolvePath(&Mousebomb/test.txt&);var myFileStream:FileStream =
new FileStream();myFileStream.addEventListener(Event.COMPLETE,
completed);myFileStream.openAsync(myFile,
FileMode.READ);var bytes:ByteArray =
new ByteArray();function completeHandler(event:Event):void{myFileStream.readBytes(bytes,
0, myFileStream.bytesAvailable);}
下面的代码把数据从bytes这个ByteArray中写入文件:
myFile:File =
File.documentsDirectory.resolvePath(&Mousebomb/test.txt&);var myFileStream:FileStream =
new FileStream();myFileStream.open(myFile,
FileMode.WRITE);myFileStream.writeBytes(bytes,
0, bytes.length);
往往我们并不希望把数据作ByteArray处理,有时候要处理的文件是特定格式,比如文件中的数据是字符串。因此FileStream类也包含ByteArray以外的数据格式读写方法,比如readMultiByte()方法,可将文件读取暂存为字符串,如下代码:
myFile:File =
File.documentsDirectory.resolvePath(&Mousebomb/test.txt&);var myFileStream:FileStream =
new FileStream();myFileStream.addEventListener(Event.COMPLETE,
completed);myFileStream.openAsync(myFile,
FileMode.READ);var str:String =
&&;function completeHandler(event:Event):void{&& str =
myFileStream.readMultiByte(myFileStream.bytesAvailable,
&iso-8859-1&);}
readMultiByte()的第二个参数(本例中为“iso-8859-1”)指定了ActionScript用来解释的文本格式。ActionScript支持通用字符集编码,具体罗列在
FileStream 类还具有readUTFBytes()方法,从读缓存中以UTF-8字符集读取数据。由于UTF8字符集为可变长,读缓存末尾数据并不一定是完整字符,所以不要在处理progress 事件的方法中使用readUTFBytes()方法(用readMultiByte()读取可变长字符编码也应遵循此项),而应在FileStream的complete事件发生时读取完整数据集。
同样,有类似的写操作writeMultiByte()和writeUTFBytes(),用来处理字符串对象和文本文件。
readUTF()和writeUTF()方法同样是读写文本数据,不过它们假定文本数据在指定文本数据长度之前,该文本数据是不在标准文本文件里普遍应用的。
有些UTF编码文本文件以一个UTF-BOM(Byte Order Mark)字符开头,像编码格式(如UTF16和UTF32)一样,也声明字节序。
readObject() 和writeObject()方法便于为复杂AS对象存取数据,数据作AMF(ActionScript. Message Format)编码,此格式为ActionScript私有,AIR、Flash Player、Flash Media Server、Flex Data Services以外的程序都没有操作该格式的内建API。
此外还有一些读写操作,像readDouble()和writeDouble()之类的,使用它们需确保所操作文件格式与之对应。
一般的文件结构往往比文本文件要复杂的多。比如mp3文件包含只能被mp3解压解码算法解释的压缩数据格式。其他文件,像图片、数据库、应用程序档案等等都有不同的结构,要想用AS操作它们的数据,得对其结构十分了解。
至此,学习笔记《AIR文件操作》结束。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:93967次
积分:1187
积分:1187
排名:第14469名
原创:37篇
转载:11篇
评论:84条
(2)(2)(4)(2)(1)(2)(3)(2)(2)(4)(1)(1)(5)(1)(1)(5)(3)(2)(4)(1)1.&&拿得住的不用拿,拿不住的不能拿,拿什么呀,爱就是了。
3.&&乖,不能再疼你了自己找吃的去吧
4.&&不能说,一说即错、
5.&&岂止怕死,生老病死都怕,“生老病死,有谁因为怕就躲过去了
6.&&无所用
7.&&这世上原来就没有什么神话所谓的神话不过是常人的思维所不易理解的平常事
8.&&文明对于不能以人字来界定得人无能为力&&当生则生,当死则死,来去自如!
9.&&他们所要的“主”归根结底,还是你为我做主的“主”
如果这个“民主”真的是历史的发展的必然潮流,我到真得不认为一个政党就可以阻碍得了
11. 只要是需要证明的感情就有错!
12. 爱如果需要回报,也就成了交易。
妈,如果您养儿就是为了防老,那就别说母爱有多么伟大了,您养来养去还是为了自已,那是交换,等不等价还两说着呢。碰到我这个不孝顺的,您就算赔了。养儿
防老,那父母就是你天然的债权人,而且这种感情比山高比水深,你永远想的就是还债报恩,所以这种文化就是让每个人都直不起腰来,你看这个民族就是老弯着
腰,而老人越是觉得养儿防老,他就越容易觉得吃亏,心里就越苦,
15. 悟道休言天命,修行勿取真经...
理论上说,只要分析对了就有可能,但是分析的实践过程中可能会出现错误,所以可能的概率取决于错误的大小
17. “是女人就有贪嗔痴,没有贪嗔痴的女人是天国的女人”
花天酒地并不违法,只是一种带符号的生活方式.&&
国内信用是个问题,私募基金是没爹没娘的买卖,一边做生意,一边得准备拼刀子,脑后还得长只眼睛看衙门得脸色.
20. 他是佛是修来世正果得佛,他还得到佛祖那里多咨询咨询. 正果是不想了尘埃落定 一个恕字我已经有罪了.
这是文化属性不一他们得意志为转移
21. 不以人得意志为转移 ,改革开放摸着石头过河 ,咱们这些人还没有弄清怎么回事就胡里胡涂闯入战场
,得先活下来等定下神来 ,时代已经变了 ,真的是穷则思变 ,
本是后山人 偶坐前堂客
醉舞经阁半卷书 坐井说天阔
大志戏功名 海斗量福祸
论到囊中羞涩时 怒指乾坤错
23. 你觉得这是一个成年人得成熟之举吗我还没有装腔作势到可以无视可能发上得事情但是你看到得东西不一定是个东西
24. 天知 地知 不会有结果
25. 女人是形式逻辑得典范是辩证逻辑得障碍我无意摧残女人也不想被女人摧残
红颜知己自古有之这还得看男人是不是一杯好酒自古又有几个男人能把自己酿到淡而又淡得名贵这不是为之而可为得事能混就混吧
27. 我是人而且还是没有进化到此时此刻可以无视本能
28. 但是我丁元英何德何能敢领受上苍这样得恩赐你是一块玉
但我不是匠人我不过事一个略懂投机之道得混子充其量挣几个打发凡夫俗子得铜板
29. 你要求得是一种雄性文化得魂我不能因为你没有说出来而装作不知道
30. 接受你就接受了一种高度
31. 我没有这个自信此生得你红颜知己足矣 真想在这一刻上帝把我们塑成一座雕像
32. 正法了一个罪犯包含打死了一个人这就是法律得价值 法理 道理 斗都在那儿搁着
33. 如果女性心理不适合刑警工作那是性别问题
着相了&&佛教得一个术语意思是执迷于表象而偏离本质
35. 朋友打赌这种事亦真亦不能真
36. 上网 学习什么都看看,谈不上研究 关注而已 ,对文化属性感兴趣 ,
37. 透视社会依次有三个层面 ,技术 ,制度, 和文化
38. 小到一个人大到一个国家一个民族任何一种命运归根到底都是那种文化属性得产物
39. 强势文化造就强者弱势文化造就弱者
这是规律也可以理解为天道&&不以人得意志为转移强势文化就是遵循事物规律得文化弱势文化就是依赖强者得道德期望破格获取得文化也是期望救主得文化强势文
化在武学上被称为秘笈而弱势文化由于易学 易懂 易用成了流行品种无所用无所不用 比如说文化产业文学
影视是扒拉灵魂得艺术如果文学影视得创作能破解更高思维空间得文化密码那么他得功效就是启迪认得觉悟 震撼认得灵魂这是众生所需 就是功德
市场 名利精神拯救得暴利与毒品麻醉完全等值而且不必像贩毒那样耍花招没有心理成本和法律风险
40. 那个暴利不是由我决定得是由认得主决定得主让众生把他口袋里得钱掏出来
41. 简单得说支配人得价值取舍行为得那东西就是主就是文化属性
理论上只要判断正确就有可能但是在判断得实践上通常会有错误所以可能得概率取决于错误得大小这个人需要一个句号你可以帮他画一个
42. 灵魂归宿感 这是人性本能得需要是人性你帮他找块干净得地方归宿灵魂
43. 他需要得不是忏悔而是一个忏悔得理由
44. 文明对于不能一人字界定得人无能为力死马当作活马医 再糟死马还能再死一回
45. 股票的暴利并不产生上产经营而是产生于股票市场本身的投机性
46. 他的运作动力是把你口袋里的钱装到我的口袋里去
47. 他的规律是把大多数的肉填到极少数狼的嘴里
48. 私募基金是从狼嘴里夹肉这就要求你得比狼更黑更狠 但是心理成本也更高而且又多了一重股市之外得风险 所以
得适可而止这说明你还有自我认同得需要这是人得特性如果你连这个起码得需要都没有我就有理由对你作为人发的属性提出质疑
49. 执法是你的职业你尽可以执法谋生 但是与我王明阳谈经论道你还不够资格
50. 别拿你的职业去拔高你的个人得规格让人轻看
51. 强盗得本质是破格获取破格获取和直接获取是两个不同的概念
52. 你们没有自信与强者在同一个规则下竞争这只能说明你是弱者
53. 因为弱势文化所追求得最高价值就是破格获取所以
强盗得逻辑从本质上讲是最懦弱得生存哲学所以你不算好汉
54. 圣经的理由是因信着得救了上天堂
55. 因不信有罪了 下地狱
56. 用这种哄孩子吓孩子得方法让人去信虽有利于基督教得实践却也恰恰迎合了人得怕死得一面贪婪得一面
这样得因果关系已经不给人以自觉自行得机会
人连追求高尚得机会斗没了又何以高尚呢不因上天堂与下地狱得因果关系而具有得极高人生境界就是窄门
57. 文明对于不能以人字来界定得人无能为力一颗阴暗得心永远托不起一张灿烂得脸这是人性 你是魔
是极品混混你要是真把这事看玄了那就真会出魔了
58. 神即道 道法自然如来
59. 金银珠宝不足以点缀你这样得女人
60. 这世上原来就没有什么神话所谓得神话不过是常人得思维所不易理解得平常事
61. 无论做什么市场不是一块无限大的蛋糕
62. 神话得实质就是强制力作用下得杀富济贫
63.这就可能产生两个问题一是杀富是不是破坏性开采市场资源二
64. 是让井底得人扒着井沿看了一眼再掉下去是不是让他患上精神绝症
65. 应该辞职
请注意是应该而不是我希望国家机器不缺少一个迟早要被淘汰得女刑警而社会需要一个又非常作为得人才这不是通俗得英雄主义和通俗得平等意识可以理解得价值
66. 你不知道你 所以你是你言语道断 一说就错 这就是圆融世故
不显山不露水各得其所
67. 可品行这个东西今天缺个角明天裂个缝 也就离坍陷不远了
68. 这不是一个道德境界问题是市场生存得法则问题
69. 这种好感不仅仅是我们强行摊派价值观也不仅仅是腐蚀我们自身得竞争力
70.更说明我们不是靠产品征服市场而是靠作秀混迹市场这种违背商业属性得人文评价最终将葬送这个公司
71. 不解决造血问题光脚的贱了穿鞋的一身泥,
72. 林雨峰虽败犹荣仁者自有公论
73. 他要因为这个杀了我就得给自己立块无字碑,写什么都寒碜
74. 这种死后还得穷名给冤家托牌位得买卖,但凡有点脑子得人都干不出来真杀了我
我就当下随缘了.
悟道休言天命
修行勿取真经
一悲一喜一枯荣
哪个前生注定
袈裟本无清静,
红尘不染性空
幽幽古刹千年钟
都是痴人说梦
所谓真经,&&就是能够达到寂空涅盘的究竟法门
77. 可悟不可修, 修为成佛
,在求,&&悟为明性 ,在知, 修行,以行制性 悟道,以性施行,
觉着由心生律, 修者以律制心 , 不落恶果者,有信无证, 住因住果, 住念住心 , 如是生灭不昧,因果者无住而住 , 无欲,无不欲
,无戒,无不戒 , 如是涅盘, 投石击水, 不起浪花, 也泛涟漪 , 晚辈无意评说道法,只在已经缘起的事情顺水推舟
,借英雄好汉的嗓子喊上两声, 至少不违天道朝纲天下之论道到极致百姓的柴米油盐 ,人生冷暖论道极致 男人女人的一个情字
78. 佛说 看山是山 看水是水 ,我只是依佛法如实观照 , 看摩登女郎实摩登女郎,看红颜知己实红颜知己
79. 你的生存状态不是病态 ,用佛教得话说是自性 无所挂碍是自在
80. 自在是什么就是解脱
参来参去我不如你当有人笑话耶稣实傻子得时候。其实谁都不傻仅仅是两种价值观不兼容
82. 如果一个民族得文化从骨子里就是弱势文化属性, 怎么可能去承载强势文化得政治
衡量一种文化属性不是看他的积淀得时间长短,而是看他与客观规律得距离五千年得文化是光辉是灿烂这个没有问题但是传统和习俗得过过客观规律得筛子
这里面既有政治经济学,也有市场经济学,既要为改革开出一条道,又要分解改革的阵痛,这时的股市真真假假、大起大落。在这种背景下,你既得盯住庄家的黑手,也得盯住衙门的快刀,你得在狼嘴里有肉的时候下筷子,还得在衙门拔刀之前抽身。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 windows live 日志 的文章

 

随机推荐