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

首頁 > 網(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.討論
一個File對象是一個指針,代表一個文件或一個目錄。要讀寫文件到硬盤驅(qū)動器,你可以使用FileStream把File對象放入一個緩沖區(qū),通過FileStream類的同步和異步方法讀取和寫入。

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

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

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

下面的例子使用同步的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ù)打開文件時,F(xiàn)ileStream對象會立即讀取數(shù)據(jù)到緩沖區(qū),通過FileStream.bytesAvailable屬性訪問緩沖區(qū)數(shù)據(jù)。當(dāng)使用同步的FileStream.open方法時,其他所有操作都暫停直到數(shù)據(jù)都被放入緩沖區(qū),因為這個操作占據(jù)了主應(yīng)用程序線程。你可以使用異步FileStream.openAsync 方法代替同步方法打開文件,并監(jiān)聽progress 和complete事件。

如果使用FileMode.WRITE參數(shù)將會覆蓋任何其他數(shù)據(jù),要檢測是否已經(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程序安裝時所創(chuàng)建的目錄的讀寫權(quán)限。在程序安裝時有個主要的目錄被創(chuàng)建, 它們是應(yīng)用程序目錄和應(yīng)用程序存儲目錄。

File.applicationDirectory和File.applicationStorageDirectory分別指向這兩個目錄,應(yīng)用程序目錄是只讀的,而應(yīng)用程序存儲目錄可讀寫,你可以讀取也可以寫入需要的文件數(shù)據(jù)。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 集安市| 和平县| 莒南县| 根河市| 苗栗市| 怀来县| 尚志市| 刚察县| 右玉县| 乾安县| 商河县| 桐乡市| 新泰市| 新密市| 太原市| 吴忠市| 阳春市| 哈密市| 宿州市| 永德县| 昌江| 宁蒗| 长宁区| 秭归县| 乳源| 玉溪市| 搜索| 宕昌县| 滦南县| 盘山县| 喀喇| 茌平县| 岢岚县| 澳门| 二手房| 库伦旗| 沾化县| 广丰县| 安龙县| 乐昌市| 壤塘县|