📅  最后修改于: 2020-11-04 05:17:22             🧑  作者: Mango
文件由std.stdio模块的File结构表示。文件表示字节序列,无论是文本文件还是二进制文件都没有关系。
D编程语言提供对高级功能的访问以及对存储设备上文件的低级调用(OS级别)。
程序开始运行时,标准输入和输出流stdin和stdout已经打开。它们准备好使用了。另一方面,必须首先通过指定文件名和所需的访问权限来打开文件。
File file = File(filepath, "mode");
在这里, filename是字符串字面量,您可以使用它来命名文件,访问模式可以具有以下值之一-
Sr.No. | Mode & Description |
---|---|
1 |
r Opens an existing text file for reading purpose. |
2 |
w Opens a text file for writing, if it does not exist then a new file is created. Here your program will start writing content from the beginning of the file. |
3 |
a Opens a text file for writing in appending mode, if it does not exist then a new file is created. Here your program will start appending content in the existing file content. |
4 |
r+ Opens a text file for reading and writing both. |
5 |
w+ Opens a text file for reading and writing both. It first truncate the file to zero length if it exists otherwise create the file if it does not exist. |
6 |
a+ Opens a text file for reading and writing both. It creates the file if it does not exist. The reading will start from the beginning but writing can only be appended. |
要关闭文件,请使用file.close()函数,其中file包含文件引用。该函数的原型是-
file.close();
当程序使用完该文件后,必须关闭该程序打开的所有文件。在大多数情况下,不需要显式关闭文件。当文件对象终止时,它们将自动关闭。
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 。
以下方法从文件读取一行-
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会将其移至下一行。