2010-09-16 11 views
7

Po prostu uczę się D. Wygląda jak świetny język, ale nie mogę znaleźć żadnych informacji o funkcjach I/O pliku. Być może jestem przygnębiony (jestem w tym dobry!), Więc czy ktoś mógłby wskazać mi właściwy kierunek, proszę? DziękiPlik D funkcje wejścia/wyjścia

+1

@Kenya: "Uczenie się" oznacza dla mnie wersję "zalecaną dla nowych projektów" dla mnie, tzn. 2. – Joey

Odpowiedz

10

Zasadniczo używasz the File structure z std.stdio.

import std.stdio; 

void writeTest() { 
    auto f = File("1.txt", "w");  // create a file for writing, 
    scope(exit) f.close();    // and close the file when we're done. 
             // (optional) 
    f.writeln("foo");     // write 2 lines of text to it. 
    f.writeln("bar"); 
} 

void readTest() { 
    auto f = File("1.txt");    // open file for reading, 
    scope(exit) f.close();    // and close the file when we're done. 
             // (optional) 
    foreach (str; f.byLine)    // read every line in the file, 
     writeln(":: ", str);    // and print it out. 
} 

void main() { 
    writeTest(); 
    readTest(); 
} 
3

Do rzeczy związane konkretnie do plików (atrybuty pliku, odczyt/zapis pliku w jednym zamachem), spojrzeć w std.file. Dla rzeczy, które generalizują standardowe strumienie (stdin, stdout, stderr), spójrz na std.stdio. Można użyć std.stdio.File zarówno dla plików na dysku fizycznym, jak i dla strumieni standardowych. Nie używaj std.stream, ponieważ jest to zaplanowane na wycofanie i nie działa z zakresami (odpowiednik D dla iteratorów).

0

Osobiście uważam, że pliki we/wy typu C są korzystne. Uważam, że jest to jedno z najbardziej przejrzystych w użyciu I/O, szczególnie jeśli pracujesz z plikami binarnymi. Nawet w C++ nie używam streamów, poza dodatkowym bezpieczeństwem jest po prostu niezgrabny (tak jak wolę printf nad strumieniami, świetnie jak D ma bezpieczny printf!).