2010-09-16 15 views
7

Estoy aprendiendo D. Parece un gran lenguaje, pero no puedo encontrar ninguna información sobre las funciones de E/S del archivo. Puede que esté siendo tenue (¡soy bueno en eso!), Así que ¿podría alguien señalarme la dirección correcta, por favor? GraciasD archivo de funciones de E/S

+1

@Kenny: "Solo estoy aprendiendo" implicaría la versión actualmente "recomendada para nuevos proyectos" para mí, es decir, 2. – Joey

Respuesta

10

Básicamente, usted usa the File structure de 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

Para la materia relacionada específicamente con archivos (atributos de archivo, la lectura/escritura de un archivo de una sola vez), busque en std.file. Para las cosas que se generaliza a las transmisiones estándar (stdin, stdout, stderr) mira en std.stdio. Puede usar std.stdio.File tanto para archivos de disco físicos como para transmisiones estándar. No use std.stream, ya que está programado para desactivarse y no funciona con rangos (equivalente de D's a los iteradores).

0

Personalmente, encuentro que la E/S de archivos C-style es favorable. Creo que es una de las E/S más claras de usar, especialmente si trabajas con archivos binarios. Incluso en C++ no uso streams, además de mayor seguridad es simplemente torpe (como prefiero printf sobre streams, ¡excelente como D tiene un printf seguro para tipos!).

Cuestiones relacionadas