Programowanie D - We / Wy pliku
Pliki są reprezentowane przez pliku struktury modułu std.stdio. Plik reprezentuje sekwencję bajtów, nie ma znaczenia, czy jest to plik tekstowy, czy plik binarny.
Język programowania D zapewnia dostęp do funkcji wysokiego poziomu, a także wywołań niskiego poziomu (poziom systemu operacyjnego) do obsługi plików na urządzeniach magazynujących.
Otwieranie plików w D
Standardowe strumienie wejściowe i wyjściowe stdin i stdout są już otwarte, gdy programy są uruchamiane. Są gotowe do użycia. Z drugiej strony, pliki należy najpierw otworzyć, określając nazwę pliku i wymagane prawa dostępu.
File file = File(filepath, "mode");
Tutaj, filename to literał łańcuchowy, którego używasz do nazwania pliku i uzyskania dostępu mode może mieć jedną z następujących wartości -
Sr.No. | Tryb i opis |
---|---|
1 | r Otwiera istniejący plik tekstowy do odczytu. |
2 | w Otwiera plik tekstowy do zapisu, jeśli nie istnieje, tworzony jest nowy plik. Tutaj twój program zacznie zapisywać zawartość od początku pliku. |
3 | a Otwiera plik tekstowy do zapisu w trybie dołączania, jeśli nie istnieje, tworzony jest nowy plik. Tutaj Twój program rozpocznie dołączanie zawartości do istniejącej zawartości pliku. |
4 | r+ Otwiera plik tekstowy do odczytu i zapisu obu. |
5 | w+ Otwiera plik tekstowy do odczytu i zapisu obu. Najpierw skraca plik do zerowej długości, jeśli istnieje, w przeciwnym razie tworzy plik, jeśli nie istnieje. |
6 | a+ Otwiera plik tekstowy do odczytu i zapisu obu. Tworzy plik, jeśli nie istnieje. Czytanie rozpocznie się od początku, ale tekst można tylko dołączyć. |
Zamknięcie pliku w D
Aby zamknąć plik, użyj funkcji file.close (), gdzie plik przechowuje odniesienie do pliku. Prototypem tej funkcji jest -
file.close();
Każdy plik, który został otwarty przez program, musi zostać zamknięty, gdy program zakończy korzystanie z tego pliku. W większości przypadków pliki nie muszą być jawnie zamykane; są zamykane automatycznie po zakończeniu obiektów File.
Pisanie pliku w D
file.writeln służy do zapisu w otwartym pliku.
file.writeln("hello");
import std.stdio;
import std.file;
void main() {
File file = File("test.txt", "w");
file.writeln("hello");
file.close();
}
Kiedy powyższy kod jest kompilowany i wykonywany, tworzy nowy plik test.txt w katalogu, w którym został uruchomiony (w katalogu roboczym programu).
Czytanie pliku w D
Poniższa metoda odczytuje pojedynczy wiersz z pliku -
string s = file.readln();
Pełny przykład odczytu i zapisu przedstawiono poniżej.
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();
}
Kiedy powyższy kod jest kompilowany i wykonywany, odczytuje plik utworzony w poprzedniej sekcji i generuje następujący wynik -
hello
Oto kolejny przykład odczytu pliku do końca pliku.
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);
}
}
Kiedy powyższy kod jest kompilowany i wykonywany, odczytuje plik utworzony w poprzedniej sekcji i generuje następujący wynik -
line -hello
line -world
line -
Możesz zobaczyć w powyższym przykładzie pustą trzecią linię, ponieważ writeln przenosi ją do następnej linii po wykonaniu.