2010-09-16 13 views
7

Sto solo imparando D. Sembra un ottimo linguaggio, ma non riesco a trovare alcuna informazione sulle funzioni I/O del file. Potrei essere oscuro (sono bravo in questo!), Quindi qualcuno potrebbe indicarmi la direzione giusta, per favore? GrazieFile D Funzioni I/O

+1

@Kenny: "Solo l'apprendimento" implicherebbe la versione attualmente "raccomandata per nuovi progetti" per me, cioè 2. – Joey

risposta

10

Fondamentalmente, si utilizza the File structure da 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

Per cose relative specificamente ai file (attributi del file, la lettura/scrittura di un file in una volta sola), guardare nel std.file. Per informazioni generali su stream standard (stdin, stdout, stderr), consultare std.stdio. È possibile utilizzare std.stdio.File per file di dischi fisici e flussi standard. Non utilizzare std.stream, poiché questo è pianificato per la deprecazione e non funziona con intervalli (l'equivalente di D agli iteratori).

0

Personalmente trovo l'I/O file in stile C favorevole. Lo trovo uno degli I/O più chiari da usare, specialmente se lavori con file binari. Anche in C++ non utilizzo flussi, oltre a una maggiore sicurezza è semplicemente banale (tanto più che preferisco la stampa su flussi, eccellente come D ha una stampa sicura per tipo!).