D Programmierung - Datei-E / A.
Die Dateien werden von der dargestellten Datei - Struktur des std.stdio Modul. Eine Datei stellt eine Folge von Bytes dar, unabhängig davon, ob es sich um eine Textdatei oder eine Binärdatei handelt.
Die Programmiersprache D bietet Zugriff auf Funktionen auf hoher Ebene sowie auf Aufrufe auf niedriger Ebene (Betriebssystemebene), um Dateien auf Ihren Speichergeräten zu verarbeiten.
Dateien in D öffnen
Die Standardeingabe- und -ausgabestreams stdin und stdout sind bereits geöffnet, wenn Programme gestartet werden. Sie sind gebrauchsfertig. Andererseits müssen Dateien zuerst geöffnet werden, indem der Name der Datei und die erforderlichen Zugriffsrechte angegeben werden.
File file = File(filepath, "mode");
Hier, filename ist ein Zeichenfolgenliteral, mit dem Sie die Datei und den Zugriff benennen mode kann einen der folgenden Werte haben -
Sr.Nr. | Modus & Beschreibung |
---|---|
1 | r Öffnet eine vorhandene Textdatei zum Lesen. |
2 | w Öffnet eine Textdatei zum Schreiben. Wenn sie nicht vorhanden ist, wird eine neue Datei erstellt. Hier beginnt Ihr Programm mit dem Schreiben von Inhalten ab dem Anfang der Datei. |
3 | a Öffnet eine Textdatei zum Schreiben im Anhänge-Modus. Wenn sie nicht vorhanden ist, wird eine neue Datei erstellt. Hier beginnt Ihr Programm, Inhalte an den vorhandenen Dateiinhalt anzuhängen. |
4 | r+ Öffnet eine Textdatei zum Lesen und Schreiben. |
5 | w+ Öffnet eine Textdatei zum Lesen und Schreiben. Die Datei wird zuerst auf die Länge Null gekürzt, wenn sie vorhanden ist. Andernfalls wird die Datei erstellt, wenn sie nicht vorhanden ist. |
6 | a+ Öffnet eine Textdatei zum Lesen und Schreiben. Es erstellt die Datei, wenn sie nicht vorhanden ist. Das Lesen beginnt von vorne, aber das Schreiben kann nur angehängt werden. |
Schließen einer Datei in D.
Verwenden Sie zum Schließen einer Datei die Funktion file.close (), in der die Datei die Dateireferenz enthält. Der Prototyp dieser Funktion ist -
file.close();
Jede Datei, die von einem Programm geöffnet wurde, muss geschlossen werden, wenn das Programm die Verwendung dieser Datei beendet hat. In den meisten Fällen müssen die Dateien nicht explizit geschlossen werden. Sie werden automatisch geschlossen, wenn Dateiobjekte beendet werden.
Schreiben einer Datei in D.
file.writeln wird verwendet, um in eine geöffnete Datei zu schreiben.
file.writeln("hello");
import std.stdio;
import std.file;
void main() {
File file = File("test.txt", "w");
file.writeln("hello");
file.close();
}
Wenn der obige Code kompiliert und ausgeführt wird, wird eine neue Datei erstellt test.txt in dem Verzeichnis, unter dem es gestartet wurde (im Programmarbeitsverzeichnis).
Lesen einer Datei in D.
Die folgende Methode liest eine einzelne Zeile aus einer Datei -
string s = file.readln();
Ein vollständiges Beispiel für Lesen und Schreiben ist unten dargestellt.
import std.stdio;
import std.file;
void main() {
File file = File("test.txt", "w");
file.writeln("hello");
file.close();
file = File("test.txt", "r");
string s = file.readln();
writeln(s);
file.close();
}
Wenn der obige Code kompiliert und ausgeführt wird, liest er die im vorherigen Abschnitt erstellte Datei und erzeugt das folgende Ergebnis:
hello
Hier ist ein weiteres Beispiel für das Lesen von Dateien bis zum Ende der Datei.
import std.stdio;
import std.string;
void main() {
File file = File("test.txt", "w");
file.writeln("hello");
file.writeln("world");
file.close();
file = File("test.txt", "r");
while (!file.eof()) {
string line = chomp(file.readln());
writeln("line -", line);
}
}
Wenn der obige Code kompiliert und ausgeführt wird, liest er die im vorherigen Abschnitt erstellte Datei und erzeugt das folgende Ergebnis:
line -hello
line -world
line -
Im obigen Beispiel sehen Sie eine leere dritte Zeile, da writeln sie nach der Ausführung in die nächste Zeile bringt.