File I/O

优质
小牛编辑
128浏览
2023-12-01

文件由std.stdio模块的File结构表示。 文件表示一个字节序列,如果它是文本文件或二进制文件则无关紧要。

D编程语言提供对高级功能的访问以及低级(OS级)调用,以处理存储设备上的文件。

在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就把它带到下一行。