Lập trình D - Tệp I / O

Tệp được đại diện bởi cấu trúc Tệp của mô-đun std.stdio. Tệp đại diện cho một chuỗi các byte, không quan trọng đó là tệp văn bản hay tệp nhị phân.

Ngôn ngữ lập trình D cung cấp quyền truy cập vào các chức năng cấp cao cũng như các lệnh gọi cấp thấp (cấp hệ điều hành) để xử lý tệp trên thiết bị lưu trữ của bạn.

Mở tệp trong D

Các luồng đầu vào và đầu ra tiêu chuẩn stdin và stdout đã được mở khi các chương trình bắt đầu chạy. Chúng đã sẵn sàng để được sử dụng. Mặt khác, các tệp trước tiên phải được mở bằng cách chỉ định tên của tệp và các quyền truy cập cần thiết.

File file = File(filepath, "mode");

Đây, filename là chuỗi ký tự, mà bạn sử dụng để đặt tên tệp và truy cập mode có thể có một trong các giá trị sau:

Sr.No. Chế độ & Mô tả
1

r

Mở tệp văn bản hiện có cho mục đích đọc.

2

w

Mở tệp văn bản để ghi, nếu tệp đó không tồn tại thì tệp mới sẽ được tạo. Tại đây chương trình của bạn sẽ bắt đầu ghi nội dung từ đầu tệp.

3

a

Mở tệp văn bản để viết ở chế độ thêm vào, nếu tệp đó không tồn tại thì tệp mới sẽ được tạo. Tại đây chương trình của bạn sẽ bắt đầu thêm nội dung vào nội dung tệp hiện có.

4

r+

Mở tệp văn bản để đọc và ghi cả hai.

5

w+

Mở tệp văn bản để đọc và ghi cả hai. Trước tiên, nó cắt ngắn tệp thành độ dài bằng 0 nếu nó tồn tại, nếu không hãy tạo tệp nếu nó không tồn tại.

6

a+

Mở tệp văn bản để đọc và ghi cả hai. Nó tạo ra tệp nếu nó không tồn tại. Việc đọc sẽ bắt đầu lại từ đầu nhưng phần viết chỉ có thể được thêm vào.

Đóng tệp trong D

Để đóng tệp, hãy sử dụng hàm file.close () nơi tệp chứa tham chiếu tệp. Nguyên mẫu của hàm này là -

file.close();

Bất kỳ tệp nào đã được mở bởi một chương trình phải được đóng khi chương trình kết thúc sử dụng tệp đó. Trong hầu hết các trường hợp, các tệp không cần phải được đóng một cách rõ ràng; chúng được đóng tự động khi các đối tượng Tệp bị kết thúc.

Viết tệp trong D

file.writeln được sử dụng để ghi vào một tệp đang mở.

file.writeln("hello");

import std.stdio; 
import std.file;
  
void main() { 
   File file = File("test.txt", "w"); 
   file.writeln("hello");
   file.close(); 
}

Khi đoạn mã trên được biên dịch và thực thi, nó sẽ tạo ra một tệp mới test.txt trong thư mục mà nó đã được khởi động theo (trong thư mục làm việc của chương trình).

Đọc tệp trong D

Phương pháp sau đây đọc một dòng từ tệp:

string s = file.readln();

Dưới đây là một ví dụ đầy đủ về đọc và ghi.

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(); 
}

Khi đoạn mã trên được biên dịch và thực thi, nó sẽ đọc tệp được tạo trong phần trước và tạo ra kết quả sau:

hello

Đây là một ví dụ khác để đọc tệp cho đến cuối tệp.

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); 
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó sẽ đọc tệp được tạo trong phần trước và tạo ra kết quả sau:

line -hello 
line -world 
line -

Bạn có thể thấy trong ví dụ trên một dòng thứ ba trống vì writeln sẽ chuyển nó sang dòng tiếp theo sau khi nó được thực thi.