Örnek: Bir XML dosyasını XML nesnesine okuma

Adobe AIR 1.0 ve üstü

Aşağıdaki örnekler, XML verileri içeren bir metin dosyasına okuma ve yazma işlemlerinin nasıl yapılacağını gösterir.

Dosyadan okumak için, File ve FileStream nesnelerini başlatın, FileStream nesnesinin readUTFBytes() yöntemini çağırın ve dizeyi bir XML nesnesine dönüştürün:

var file:File = File.documentsDirectory.resolvePath("AIR Test/preferences.xml"); 
var fileStream:FileStream = new FileStream(); 
fileStream.open(file, FileMode.READ); 
var prefsXML:XML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable)); 
fileStream.close(); 

Benzer şekilde dosyaya veri yazmak da, uygun File ve FileStream nesnelerini ayarlayıp FileStream nesnesinin write yöntemini çağırmak kadar kolaydır. XML verilerinin dize sürümünü write yöntemine aşağıdaki kodda olduğu gibi iletin:

var prefsXML:XML = <prefs><autoSave>true</autoSave></prefs>; 
var file:File = File.documentsDirectory.resolvePath("AIR Test/preferences.xml"); 
fileStream = new FileStream(); 
fileStream.open(file, FileMode.WRITE); 
 
var outputString:String = '<?xml version="1.0" encoding="utf-8"?>\n'; 
outputString += prefsXML.toXMLString(); 
     
fileStream.writeUTFBytes(outputString); 
fileStream.close(); 

Bu örnekler readUTFBytes() ve writeUTFBytes() yöntemlerini kullanır, çünkü dosyaların UTF-8 biçiminde olduğunu varsayar. Değilse, farklı bir yöntem kullanmanız gerekebilir (bkz. Veri biçimleri ve kullanılacak okuma ve yazma yöntemlerini seçme).

Önceki örnekler senkronize işlem için açılmış FileStream nesnelerini kullanır. Senkronize olmayan işlemler (olaylara yanıt vermek için olay dinleyicisi işlevlerine dayanan) için de dosyalar açabilirsiniz. Örneğin aşağıdaki kod, bir XML dosyasının senkronize olmayan şekilde nasıl okunacağını gösterir:

var file:File = File.documentsDirectory.resolvePath("AIR Test/preferences.xml"); 
var fileStream:FileStream = new FileStream(); 
fileStream.addEventListener(Event.COMPLETE, processXMLData); 
fileStream.openAsync(file, FileMode.READ); 
var prefsXML:XML; 
 
function processXMLData(event:Event):void  
{ 
    prefsXML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable)); 
    fileStream.close(); 
} 

processXMLData() yöntemi, dosyanın tamamı okuma arabelleğine okunduğu zaman çağrılır (FileStream nesnesi complete olayını gönderdiğinde). Okunan verilerin dize sürümünü alması için readUTFBytes() yöntemini çağırır ve o dizeye dayalı olarak prefsXML adlı bir XML nesnesi oluşturur.

Bu özellikleri gösteren örnek bir uygulama için bkz. XML tercihler dosyasından okuma ve yazma.