D 语言 - I/O 文件输入/输出
文件由 std.stdio 模块的 File 结构表示。 一个文件代表一个字节序列,无论是文本文件还是二进制文件。
D 编程语言提供对高级函数的访问以及低级(操作系统级)调用来处理存储设备上的文件。
打开 D 中的文件
当程序开始运行时,标准输入和输出流 stdin 和 stdout 已经打开。 它们已准备好可供使用。 另一方面,必须首先通过指定文件名和所需的访问权限来打开文件。
File file = File(filepath, "mode");
此处,filename 是字符串文字,用于命名文件和访问 mode 可以具有以下值之一 −
序号 | 模式及说明 |
---|---|
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 在执行后会将其带到下一行。