国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > WEB開發(fā) > 正文

23.5.讀寫文件

2024-04-27 13:52:32
字體:
供稿:網(wǎng)友
23.5.1.問題
我想在文件系統(tǒng)上創(chuàng)建,訪問和寫文件。
23.5.2.解決辦法
使用AIR的file system API的File, FileStream, 和FileMode類。
23.5.3.討論
一個(gè)File對(duì)象是一個(gè)指針,代表一個(gè)文件或一個(gè)目錄。要讀寫文件到硬盤驅(qū)動(dòng)器,你可以使用FileStream把File對(duì)象放入一個(gè)緩沖區(qū),通過FileStream類的同步和異步方法讀取和寫入。

當(dāng)使用的同步的FileStream.open方法時(shí),文件被當(dāng)作一個(gè)ByteArray對(duì)象,其他任何操作將被暫停直到文件被讀取或?qū)懭搿6惒降腇ileStream.openAsync方法類似于URLStream對(duì)象,數(shù)據(jù)被放置在緩沖區(qū)。使用同步還是異步方法這取決于你的程序需求,但是有點(diǎn)需要注意,就是所有操作完成后要記得關(guān)閉流。

當(dāng)調(diào)用FileStrema.open和FileStream.openAsync方法時(shí)可通過FileMode類的字符串常量設(shè)定文件的具體操作方式。FileMode.WRITE常量指當(dāng)打開一個(gè)文件流,如果文件文件不存在則創(chuàng)建文件并寫入數(shù)據(jù),如果文件存在則覆蓋所有數(shù)據(jù)。FileMode.APPEND常量指把緩沖區(qū)的數(shù)據(jù)追加到文件末尾,F(xiàn)ileMode.UPDATE常量則既可以讀也可以寫文件。所有的寫指令當(dāng)文件不存在時(shí)都會(huì)創(chuàng)建新文件,當(dāng)使用FileMode.READ時(shí),文件事先必須存在,并把文件數(shù)據(jù)讀取到緩沖區(qū)中。

為了讀寫文件,你需要把File對(duì)象指向一個(gè)用戶電腦中的文件。File類有一些靜態(tài)屬性和方法對(duì)應(yīng)操作系統(tǒng)文件系統(tǒng)的標(biāo)準(zhǔn)目錄以及應(yīng)用程序目錄和應(yīng)用程序存儲(chǔ)目錄。

下面的例子使用同步的FileStream.open方法在桌面上寫文件:
+展開
-ActionScript
var file:File = File.desktopDirectory.resolvePath( "test.txt");
var stream:FileStream = new FileStream();
stream.open( file, FileMode.WRITE );
stream.writeUTFBytes( "Hello World");
stream.close();

名為test.txt的文件被創(chuàng)建或打開,使用FileStream.writeUTFBytes方法寫入文本Hello World。

要讀取文件數(shù)據(jù),可使用FileStream.readUTFBytes方法:
+展開
-ActionScript
var file:File = File.desktopDirectory.resolvePath( "test.txt" );
var stream:FileStream = new FileStream();
stream.open( file, FileMode.READ );
trace( stream.readUTFBytes( stream.bytesAvailable ) );
stream.close();

當(dāng)使用FileMode.READ參數(shù)打開文件時(shí),F(xiàn)ileStream對(duì)象會(huì)立即讀取數(shù)據(jù)到緩沖區(qū),通過FileStream.bytesAvailable屬性訪問緩沖區(qū)數(shù)據(jù)。當(dāng)使用同步的FileStream.open方法時(shí),其他所有操作都暫停直到數(shù)據(jù)都被放入緩沖區(qū),因?yàn)檫@個(gè)操作占據(jù)了主應(yīng)用程序線程。你可以使用異步FileStream.openAsync 方法代替同步方法打開文件,并監(jiān)聽progress 和complete事件。

如果使用FileMode.WRITE參數(shù)將會(huì)覆蓋任何其他數(shù)據(jù),要檢測(cè)是否已經(jīng)有文件存在,可使用File類的exists屬性:
+展開
-ActionScript
var file:File = File.desktopDirectory.resolvePath( "test.txt");
if( file.exists ){
trace( "File created:"+ file.creationDate );
file = File.desktopDirectory.resolvePath( "test2.txt");
}
var stream:FileStream = new FileStream();
stream.open( file, FileMode.WRITE );
stream.writeUTFBytes( "Hello World");
stream.close();

FileStream.writeUTFBytes和FileStream.readUTFByte方法只是FileStream類中讀寫方法的一小部分。

討論讀寫文件中,需要特別注意的是當(dāng)AIR程序安裝時(shí)所創(chuàng)建的目錄的讀寫權(quán)限。在程序安裝時(shí)有個(gè)主要的目錄被創(chuàng)建, 它們是應(yīng)用程序目錄和應(yīng)用程序存儲(chǔ)目錄。

File.applicationDirectory和File.applicationStorageDirectory分別指向這兩個(gè)目錄,應(yīng)用程序目錄是只讀的,而應(yīng)用程序存儲(chǔ)目錄可讀寫,你可以讀取也可以寫入需要的文件數(shù)據(jù)。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 股票| 南岸区| 宁陵县| 玉山县| 祁门县| 屏山县| 浦县| 义乌市| 广河县| 赤水市| 林甸县| 鹿邑县| 七台河市| 始兴县| 定日县| 遵义市| 海伦市| 江口县| 饶平县| 天柱县| 武邑县| 德江县| 根河市| 嵩明县| 潼关县| 乐清市| 南雄市| 资溪县| 长沙县| 新郑市| 佛山市| 建阳市| 玉溪市| 沾化县| 安泽县| 城口县| 耿马| 宁夏| 武鸣县| 武鸣县| 武宣县|