JavaScript: File
Das (serverseitige)File
-Objekt stellt Eigenschaften und Methoden zur Verfügung, die es erlauben auf Dateien zuzugreifen und mit diesen zu arbeiten.
file-Objekt erstellen
Jedes File
-Objekt muss separat erstellt und behandelt werden. Dazu wird, wie bei normalen Objekten, der new
-Operator verwendet. Ihm folgt der Aufruf File()
. Als Parameter muss außerdem der Pfad zu der zu verarbeitenden Datei übergeben werden.
Notation: Objekt = new File(
Pfad )
a = new File('abc.txt');
a = new File('C://verzeichnis//abc.txt');
Ist die Datei existent wird sie geöffnet - ist sie es nicht, wird eine neue Datei erstellt und diese geöffnet.
Bitte beachten Sie die Unterscheidung zwischen globalen und lokalen Methoden. Ähnlich wie beim RegExp
-Objekt werden globale Methoden hier immer mit File.Methode()
wobei lokale Methoden immer ein direkt erstelltes Objekt voraussetzen.
Eigenschaften
constructor
Die constructor
-Eigenschaft gibt die Funktion an, die das Objekt erstellt hat.
Notation: Objekt.constructor
prototype
Die prototype
-Eigenschaft gibt eine Referenz auf die eigentliche Objektklasse wieder.
Notation: Objekt.prototype
Methoden
byteToString
Die byteToString
-Methode wandelt die angegebene Anzahl an Bytes in einen String um. Als Parameter wird dazu die Anzahl der umzuwandelnden Bytes erwartet.
Notation: Objekt.byteToString(
Anzahl )
q = new File("quelle.txt");
if (q.open("r") == true)
{
z = new File("ziel.txt");
z.open("w");
while(!source.eof())
{
inhalt = File.byteToString(q.readByte());
z.write(inhalt);
}
z.flush();
z.close();
}
q.close();
Bitte beachten Sie, dass die Methode nur direkt auf das globale File
-Objekt angewandt werden kann und nicht auf lokale Objekte (siehe oben). Das Beispiel liest eine Datei zeichenweise ein und kopiert diese in eine zweite Datei.
clearError
Die clearError
-Methode setzt den aktuellen Fehlerstatus zurück. Außerdem wird damit gleichzeitig der Wert der eof
-Methode zurück gesetzt. Es werden keine Parameter erwartet.
Notation: Objekt.clearError()
f = new File("datei.txt");
f.open("w");
if(f.error() == 0)
{
f.write('Text');
f.flush();
}
else
{ write('Fehler: Datei konnte nicht geöffnet werden.'); }
f.clearError();
close
Die close
-Methode schließt eine bereits geöffnete Datei.
Notation: Objekt.close()
f = new File('abc.txt');
f.open('r');
/*...bearbeiten...*/
f.close();
eof
Mit der eof
-Methode lässt sich prüfen, ob der Dateizeiger am Ende der Datei angekommen ist (true
) oder nicht (false
). Dazu werden die zwei booleschen Werte zurückgegeben. Ein Parameter wird nicht erwartet.
Notation: Objekt.eof()
f = new File("abc.txt");
s = '';
if (f.open("r") == true)
{
while(!f.eof())
{
s += f.readln()+'<br>';
}
f.close();
}
write(s);
error
Der aktuelle Errorcode/-status wird von der error
-Methode zurückgegeben. Der Rückgabewert ist 0 (Null), wenn kein Fehler eingetreten ist und -1 wenn die Datei nicht geöffnet werden konnte.
Notation: Objekt.error()
Beispiel siehe clearError
-Methode.
exists
Die exists
-Methode überprüft, ob die dem Objekt zugewiesene Datei existiert oder nicht. Ist sie existent wird true
, ansonsten false
zurückgegeben.
Notation: Objekt.exists()
f = new File('abc.txt');
if(f.exists() == true)
{
/*...machwas...*/
}
flush
Die flush
-Methode schreibt den Inhalt des internen Datenspeichers in die Datei. Dies ist deshalb notwendig, da die Methoden zum Schreiben einer Datei ihre Daten vorerst in den Datenspeicher und nicht die Datei schreiben (um eventuelle Fehler zu vermeiden). Erst mit dem Aufruf der flush
-Methode wird der Datenspeicher übertragen.
Notation: Objekt.flush()
Beispiel siehe clearError
-Methode.
getLength
Die Größe einer Datei wird von der getLength
-Methode zurückgegeben. Handelt es sich um binäre Daten wird die Anzahl der Daten zurückgegeben - handelt es sich um Text-Daten wird die Anzahl der Zeichen zurückgegeben. Bei allen anderen Dateien oder einem Fehler wird -1 zurückgegeben. Sie erwartet keine Parameter.
Notation: Objekt.getLength()
f = new File('abc.txt');
a = f.getLength();
getPosition
Die getPosition
-Methode gibt die Position des Dateizeigers innerhalb der aktuellen Datei an. Ist ein Fehler aufgetreten wird -1 zurückgegeben.
Notation: Objekt.getPosition()
Beispiel siehe setPosition
-Methode.
open
Die open
-Methode öffnet eine Datei und weißt ihr einen Dateizeiger zu. Je nach Modus kann die Datei zum Lesen, Schreiben oder Anhängen (oder Kombinationen) geöffnet werden. Der Modus wird als String übergeben, wobei folgende Möglichkeiten bestehen:
- r - Lesen. Gibt true bei erfolgreichem Öffnen aus - ansonsten false. Schreiben ist nicht Möglich.
- w - Schreiben. Gibt immer true zurück. Ist die Datei existent, wird sie geöffnet und überschrieben. Existiert sie nicht, wird eine neue Datei erzeugt und geöffnet.
- a - Anhängen (= ans Dateiende schreiben). Ebenso wie w[b], nur mit dem Unterschied, dass der Zeiger automatisch ans Dateiende gesetzt wird.
- r+ - Lesen und Schreiben. Existiert die Datei wird true zurückgegeben. Ansonsten false und die Methode scheitert (error()). Der Zeiger beginnt am Dateianfang.
- w+ - Lesen und Schreiben. Existiert die Datei nicht, wird sie angelegt. Ansonsten wird sie überschrieben. Die Methode gibt immer true aus.
- a+ Lesen und Anhängen. Existiert die Datei nicht wird sie erstellt und es wird immer true zurückgegeben. Der Zeiger wird an das Dateiende gesetzt.
Notation: Objekt.open(
Modus)
f = new File("abc.txt");
if (f.open("r") == true)
{
/*...bearbeiten...*/ f.close();
}
read
Die read
-Methode liest eine angegeben Zahl an Bytes bzw. Zeichen aus einer Datei. Als Parameter wird dazu die Anzahl der auszulesenden Bytes/Zeichen erwartet. Der Dateizeiger wird um die entsprechende Anzahl verschoben.
Notation: Objekt.read(
Anzahl )
f = new File("abc.txt");
s = '';
if (f.open("r") == true)
{
while(!f.eof())
{
s += f.read(1);
}
f.close();
}
write(s);
readByte
Die readByte
-Methode liest - ähnlich der read
-Methode - Bytes aus einer Datei. Im Gegensatz zu read
ließt die Methode nur jeweils ein Byte. Ist das Dateiende erreicht, wird anstelle des ausgelesenen Bytes die -1 zurückgegeben. Der Dateizeiger wird um 1 verschoben.
Notation: Objekt.readByte()
Beispiel siehe read
-Methode.
readln
Die readln
-Methode liest die aktuelle Zeile aus einer (Text-)Datei und gibt diese als String zurück. Die Zeilenumbrüche (#13#10
bzw. #10
) werden nicht mit ausgegeben. Der Dateizeiger wird um die entsprechende Anzahl verschoben.
Notation: Objekt.readln()
Beispiel siehe read
-Methode.
setPosition
Die setPosition
-Methode ist quasi das Gegenstück der getPosition
-Methode. Sie setzt den Dateizeiger auf eine bestimmte Stelle innerhalb der Datei. Als Parameter wird dazu die Position für den Dateizeiger erwartet (gezählt vom Dateianfang). Optional kann ein zweiter Wert übergeben werden. Wird dieser Angegeben, so gilt die zu setzende Position des Zeigers nicht vom Dateianfang sondern von dem Startpunkt, der durch den zweiten Wert definiert wird. Erhält der zweite Parameter Wert 0 (Null) ist dies gleichbedeutend mit dem Dateianfang; der Wert 1 ist gleichbedeutend mit der aktuellen Position und der Wert 2 steht für das Dateiende - alle anderen für eine Stelle innerhalb der Datei.
Notation: Objekt.setPosition(
Position [,
Start])
f = new File("abc.txt");
if(f.open("r") == true)
{
f.setPosition(0);
s = f.readln();
i = f.getPosition();
write('Die erste Zeile ist: '+s);
write('Sie hat '+i+' Zeichen.');
f.close();
}
stringToByte
Die globale stringToByte
-Methode wandelt einen als Parameter übergebenen String in einen Bytecode um und gibt diesen aus.
Notation: Objekt.stringToByte(
String )
f.write(File.stringToByte('Dieser Text wird geschrieben.'));
write
Die write
-Methode schreibt einen String in die geöffnete Datei. Als Parameter wird dazu der zu schreibende String erwartet. Außerdem wird true
zurück gegeben wenn der String erfolgreich geschrieben wurde - ansonsten false
. Der Dateizeiger wird automatisch verschoben.
Notation: Objekt.write(
String )
f = new File("abc.txt");
if(f.open("w") == true)
{
f.write('Neuer Text');
f.write('der in die');
f.write('Datei geschrieben');
f.write('wird.');
f.close();
}
writeByte
Die writeByte
-Methode ist ähnlich der write
-Methode. Sie schreibt das als Parameter übergebene Byte in eine Datei. Als Übergabewert muss dazu eine Zahl definiert werden, die dem Byte entspricht. Der Dateizeiger wird automatisch verschoben.
Notation: Objekt.writeByte(
Nummer )
Beispiel siehe write
-Methode.
writeln
Die writeln
-Methode schreibt einen String in die Datei und fügt automatisch die Zeilenumbruchzeichen danach ein (Zeilenweises Schreiben). Als Parameter wird zu schreibende String erwartet. Der Dateizeiger wird automatisch verschoben.
Notation: Objekt.writeln(
String )
Beispiel siehe write
-Methode.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project