Adobe AIR - Reading Writing xml

Die File-Klasse erweitert die FileReference-Klasse um Funktionen, die im Flash Player aus Sicherheitsgründen nicht erlaubt sind. Zu den Funktionen gehören:

  • Dateien und Verzeichnisse kopieren und verschieben
  • Dateien und Verzeichnisse löschen oder in den Papierkorb verschieben
  • Auflisten der Dateien und Verzeichnisse in einem Ordner
  • Temporäre Dateien und Ordner erstellen

Dieses AIR-Beispiel verdeutlicht, wie man eine Datei schreibt und liest. Es wird eine kleine Konfigurations-Datei erstellt, die einen Wert (Jahreszahl) im XML-Format abspeichern kann.

Beim Starten des Programm wird versucht, die Konfigurationsdatei zu öffnen. Existiert diese Datei nicht, wird sie mit dem Defaultwert "1980" im "Dokumentenverzeichnis" des Nutzers angelegt. Ist die Datei vorhanden, wird der Wert darin ausgelesen und angezeigt.

Beim nächsten Starten des Programm sieht man, dass der zuletzt gespeicherte Werte zu sehen ist.

Actionscript:
  1. import flash.filesystem.*;
  2. import flash.events.*;
  3.  
  4. var myXML:XML;
  5.  
  6. // Datei definieren
  7. var file:File = File.documentsDirectory.resolvePath("myAppConfig.xml");
  8.  
  9. // neuer Filestream
  10. var fileStream:FileStream = new FileStream();
  11.  
  12. try {
  13.    
  14.     // filestream öffnen zum lesen
  15.     fileStream.open(file, FileMode.READ);
  16.    
  17.     // neues XML Element
  18.      myXML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));
  19.     
  20.      // filestream schließen
  21.     fileStream.close();
  22.    
  23. }
  24.  
  25. catch(e:Error) {
  26.    
  27.     // default config generieren
  28.     myXML = new XML("1980");
  29.    
  30.     // default config schreiben lassen
  31.     writeConfig(myXML.toXMLString());
  32. }
  33.  
  34.  
  35.  
  36. function writeConfig(content:String):void {
  37.    
  38.     // hinweistext ausgeben
  39.     myText.text = "Schreibe Config-File: \n" + file.nativePath;
  40.    
  41.     // filestream öffnen zum schreiben
  42.     fileStream = new FileStream();
  43.     fileStream.open(file, FileMode.WRITE);
  44.    
  45.     // xml header
  46.     var outputString:String = '\n';
  47.    
  48.     // inhalt anhängen
  49.     outputString += content;
  50.  
  51.     // filestream schreiben
  52.     fileStream.writeUTFBytes(outputString);
  53.    
  54.     // filestream schließen
  55.     fileStream.close();
  56.    
  57. }
  58.  
  59.  
  60.  
  61.  
  62. // Wert anzeigen
  63. myNumStepper.value = Number ( myXML..year.text() );
  64.  
  65.  
  66. // event listener für save button
  67. mySaveButton.addEventListener(MouseEvent.CLICK, mySaveButton_CLICK);
  68.  
  69.  
  70. function mySaveButton_CLICK(e:MouseEvent):void {
  71.    
  72.     // wert im XML ablegen
  73.     myXML..year = myNumStepper.value;
  74.    
  75.     writeConfig(myXML.toXMLString());
  76.    
  77.    
  78. }

Für den Download benötigt man Flash CS3 und die Adobe AIR Erweiterung.

Link: Quelldatei (.fla)