D Программирование - Файловый ввод / вывод
Файлы представлены в файловой структуре в std.stdio модуля. Файл представляет собой последовательность байтов, независимо от того, является ли он текстовым файлом или двоичным файлом.
Язык программирования D обеспечивает доступ к функциям высокого уровня, а также к вызовам низкого уровня (уровень ОС) для обработки файлов на ваших устройствах хранения.
Открытие файлов в D
Стандартные потоки ввода и вывода stdin и stdout уже открыты при запуске программы. Они готовы к использованию. С другой стороны, файлы необходимо сначала открыть, указав имя файла и необходимые права доступа.
File file = File(filepath, "mode");
Вот, filename это строковый литерал, который вы используете для имени файла и доступа mode может иметь одно из следующих значений -
Sr.No. | Режим и описание |
---|---|
1 | r Открывает существующий текстовый файл для чтения. |
2 | w Открывает текстовый файл для записи, если он не существует, создается новый файл. Здесь ваша программа начнет писать контент с начала файла. |
3 | a Открывает текстовый файл для записи в режиме добавления, если он не существует, создается новый файл. Здесь ваша программа начнет добавлять содержимое в существующее содержимое файла. |
4 | r+ Открывает текстовый файл для чтения и записи. |
5 | w+ Открывает текстовый файл для чтения и записи. Сначала он обрезает файл до нулевой длины, если он существует, в противном случае создает файл, если он не существует. |
6 | a+ Открывает текстовый файл для чтения и записи. Он создает файл, если он не существует. Чтение начнется сначала, но запись может быть только добавлена. |
Закрытие файла в D
Чтобы закрыть файл, используйте функцию file.close (), где file содержит ссылку на файл. Прототип этой функции -
file.close();
Любой файл, который был открыт программой, должен быть закрыт, когда программа закончит использовать этот файл. В большинстве случаев файлы не нужно закрывать явно; они закрываются автоматически, когда завершаются объекты File.
Запись файла в D
file.writeln используется для записи в открытый файл.
file.writeln("hello");
import std.stdio;
import std.file;
void main() {
File file = File("test.txt", "w");
file.writeln("hello");
file.close();
}
Когда приведенный выше код компилируется и выполняется, он создает новый файл test.txt в каталоге, из которого он был запущен (в рабочем каталоге программы).
Чтение файла в D
Следующий метод считывает одну строку из файла -
string s = file.readln();
Полный пример чтения и записи показан ниже.
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();
}
Когда приведенный выше код компилируется и выполняется, он считывает файл, созданный в предыдущем разделе, и дает следующий результат:
hello
Вот еще один пример чтения файла до конца.
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);
}
}
Когда приведенный выше код компилируется и выполняется, он считывает файл, созданный в предыдущем разделе, и дает следующий результат:
line -hello
line -world
line -
В приведенном выше примере вы можете увидеть пустую третью строку, поскольку после выполнения Writeln переводит ее на следующую строку.