D 프로그래밍-파일 I / O

파일은 std.stdio 모듈 의 File 구조체 로 표시됩니다 . 파일은 바이트 시퀀스를 나타내며 텍스트 파일이든 바이너리 파일이든 상관 없습니다.

D 프로그래밍 언어는 스토리지 장치의 파일을 처리하기위한 저수준 (OS 수준) 호출뿐만 아니라 고수준 기능에 대한 액세스를 제공합니다.

D에서 파일 열기

표준 입력 및 출력 스트림 stdin 및 stdout은 프로그램이 실행되기 시작할 때 이미 열려 있습니다. 사용할 준비가되었습니다. 반면에 파일 이름과 필요한 액세스 권한을 지정하여 먼저 파일을 열어야합니다.

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

여기, filename 파일 이름을 지정하고 액세스하는 데 사용하는 문자열 리터럴입니다. mode 다음 값 중 하나를 가질 수 있습니다.

Sr. 아니. 모드 및 설명
1

r

읽기 목적으로 기존 텍스트 파일을 엽니 다.

2

w

쓰기 위해 텍스트 파일을 엽니 다. 존재하지 않는 경우 새 파일이 생성됩니다. 여기에서 프로그램은 파일 시작 부분부터 내용을 쓰기 시작합니다.

a

추가 모드로 쓰기 위해 텍스트 파일을 엽니 다. 존재하지 않으면 새 파일이 생성됩니다. 여기서 프로그램은 기존 파일 내용에 내용을 추가하기 시작합니다.

4

r+

읽고 쓰기 위해 텍스트 파일을 엽니 다.

5

w+

읽고 쓰기 위해 텍스트 파일을 엽니 다. 먼저 파일이 있으면 길이를 0으로 자릅니다. 그렇지 않으면 파일이 없으면 만듭니다.

6

a+

읽고 쓰기 위해 텍스트 파일을 엽니 다. 파일이없는 경우 생성합니다. 읽기는 처음부터 시작되지만 쓰기는 추가 만 가능합니다.

D에서 파일 닫기

파일을 닫으려면 file에 파일 참조가있는 file.close () 함수를 사용하십시오. 이 함수의 프로토 타입은 다음과 같습니다.

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이 실행되면 다음 줄로 이동하므로 빈 세 번째 줄을 볼 수 있습니다.