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
.