Adobe Air (wiwobooks.com Release)
charSet:String)
readObject()
readShort()
readUnsignedByte()
readUnsignedInt()
readUnsignedShort()
readUTF()
readUTFBytes(length:uint)
Erläuterung
liest einen boolschen Wert ein
liest ein Byte mit Vorzeichen ein
liest length Anzahl an Bytes mit Offset offset in bytes ein
liest eine Fließkommazahl doppelter Genauigkeit ein liest eine Fließkommazahl einfacher Genauigkeit ein liest einen 32-Bit-Ganzzahlwert mit Vorzeichen ein
liest eine length Zeichen lange Zeichenkette unter Verwendung des Zeichensatzes charSet ein liest ein in AMF ( Action Message Format , das binäre Format für Flash Remoting) serialisiertes Objekt ein
liest einen 16-Bit-Ganzzahlwert mit Vorzeichen ein liest ein Byte ohne Vorzeichen ein
liest einen 32-Bit-Ganzzahlwert ohne Vorzeichen ein liest einen 16-Bit-Ganzzahlwert ohne Vorzeichen ein
liest eine UTF-8-Zeichenkette ein (bezieht die Information über die Länge der Zeichenkette aus dem UTFHeader)
liest length Anzahl an UTF-8-Bytes ein
Tabelle 12.5 Instanzmethoden der FileStream-Klasse zum Einlesen von Daten
Lösungsweg
1. Öffnen einer FileStream -Instanz (synchron oder asynchron) mit fileMode -Parameter
FileMode.READ : nur Lesezugriff
FileMode.UPDATE : Lese- und Schreibzugriff
2. Bei asynchron geöffneter Datei: Registrieren eines Ereignis-Listeners für Fehler und Erfolgsereignisse (siehe Abschnitt 12.5)
3. Aufruf einer der read…() -Methoden der FileStream-Klasse
4. Auswerten der Daten
5. Schließen des Datenstroms mit der close() -Methode der FileStream -Instanz
Stolperfallen/Caveats
Stellen Sie sicher, dass Sie alle möglichen Fehler im Zusammenhang mit der Dateioperation abfangen. Wenn Sie synchron arbeiten, schließen Sie die open() -, read…() - und close() -Methode in einen try -Block ein und fangen Sie im anschließenden catch -Block entweder alle Fehler innerhalb eines einzigen Blocks oder getrennt nach IOError (Fehler bei Zugriff auf Datei) und EOFError (Versuch, eine Datei »hinter dem Ende« zu lesen) ab.
Wenn Sie asynchron arbeiten, benötigen Sie für Fehler einen eigenen EreignisListener.
So geht es
Nachfolgend sehen Sie ein Beispiel für den synchronen Abruf von Daten aus einer Datei:
import flash.filesystem.File;
import flash.filesystem.FileStream;
import flash.filesystem.FileMode;
import flash.errors.IOError;
var myFile:File = File.applicationStorageDirectory;
myFile = myFile.resolvePath("someDir/beispiel.txt");
var myFileStream:FileStream = new FileStream();
try {
myFileStream.open(myFile, FileMode.READ);
// UTF-8-Zeichenkette auslesen
var fileText:String = myFileStream.readUTFBytes(myFileStream.
bytesAvailable);
trace(fileText);
myFileStream.close();
}
catch(e:IOError) {
trace("Es gab einen Fehler beim Zugriff auf " + myFile. nativePath + " :\n" + e.message);
}
Listing 12.4 Beispiel: synchrones Lesen von Daten aus einer Datei
Weiter gehende Informationen
Jede der read…() -Methoden der FileStream -Klasse im Detail zu besprechen würde den Rahmen dieses Buchs sprengen. Lesen Sie mehr über diese Methoden in der Online-Dokumentation unter:
http://livedocs.adobe.com/flex/3/langref/flash/filesystem/FileStream.html
12.4.5 Inhalt in Datei schreiben
Die Methoden der FileStream -Klasse zum Schreiben in Dateien (siehe Tabelle 12.6) ähneln denen zum Lesen aus Dateien. Dabei kommen diese Methoden ohne einen Längenparameter aus, da dieser aus dem zu schreibenden Wert selbst abgeleitet wird. Auch die Methoden zum Schreiben von Daten in eine Datei sind aufgrund der Tatsache, dass Schreiboperationen bei Dateien ByteArray -Operationen sind, mit denen der ByteArray -Klasse identisch.
Methode
writeBoolean(value:Boolean)
writeByte(value:int)
writeBytes(bytes:ByteArray, offset:uint, length:uint)
writeDouble(value:Number)
writeFloat(value:Number)
writeInt(value:int)
writeMultiByte(value:String, charSet:String)
writeObject(object:*)
writeShort(value:int)
writeUnsignedInt(value:uint)
Erläuterung
schreibt einen boolschen Wert value
schreibt ein Byte value mit Vorzeichen
schreibt length Anzahl an Bytes aus ByteArray - Puffer bytes ab Offset offset
schreibt eine Fließkommazahl doppelter Genauigkeit value
schreibt eine Fließkommazahl einfacher Genauigkeit value
schreibt einen 32-Bit-Ganzzahlwert value mit Vorzeichen
schreibt eine Zeichenkette value unter Verwendung des Zeichensatzes charSet
schreibt ein in AMF ( Action Message Format , das binäre Format für Flash Remoting) serialisiertes Objekt object
schreibt einen 16-Bit-Ganzzahlwert mit Vorzeichen value
Weitere Kostenlose Bücher