Voorbeeld: Een XML-bestand lezen in een XML-objectAdobe AIR 1.0 of hoger In de volgende voorbeelden ziet u hoe u kunt lezen van en schrijven naar een tekstbestand dat XML-gegevens bevat. Om te lezen van het bestand, initialiseert u de File- en FileStream-objecten, roept u de methode readUTFBytes() van het FileStream-object op en converteert u de tekenreeks naar een XML-object: 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(); Om de gegevens naar het bestand te schrijven, hoeft u alleen maar de correcte File- en FileStream-objecten in te stellen en vervolgens een schrijfmethode van het FileStream-object op te roepen. Geef de tekenreeksversie van de XML-gegevens door aan de schrijfmethode zoals in de volgende code: 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(); Bij deze voorbeelden wordt gebruikgemaakt van de methoden readUTFBytes() en writeUTFBytes(), omdat er bij deze methoden van wordt uitgegaan dat de bestanden de UTF-8-indeling hebben. Als dat niet het geval is, moet u mogelijk een andere methode gebruiken (zie Gegevensindelingen, en de methode voor lezen en schrijven kiezen). Bij de voorgaande voorbeelden worden FileStream-objecten gebruikt die zijn geopend voor synchrone bewerkingen. U kunt ook bestanden openen voor asynchrone bewerkingen (die gebruikmaken van gebeurtenislistenerfuncties om te reageren op gebeurtenissen). In de volgende voorbeeldcode ziet u hoe u een XML-bestand asynchroon kunt lezen: 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(); } De methode processXMLData() wordt opgeroepen wanneer het gehele bestand in de leesbuffer is ingelezen (wanneer het FileStream-object de gebeurtenis complete verzendt). Deze roept de methode readUTFBytes() op om een tekenreeksversie van de leesgegevens te verkrijgen en maakt op basis van die tekenreeks het XML-object prefsXML. Een voorbeeldtoepassing waarin deze mogelijkheden worden getoond, vindt u in Lezen van en schrijven naar een XML-voorkeurenbestand. |
![]() |