Programación D - E / S de archivos
Los archivos están representados por la estructura File del módulo std.stdio. Un archivo representa una secuencia de bytes, no importa si es un archivo de texto o un archivo binario.
El lenguaje de programación D proporciona acceso a funciones de alto nivel, así como llamadas de bajo nivel (nivel de SO) para manejar archivos en sus dispositivos de almacenamiento.
Abrir archivos en D
Los flujos estándar de entrada y salida stdin y stdout ya están abiertos cuando los programas comienzan a ejecutarse. Están listos para usarse. Por otro lado, los archivos deben abrirse primero especificando el nombre del archivo y los derechos de acceso necesarios.
File file = File(filepath, "mode");
Aquí, filename es literal de cadena, que usa para nombrar el archivo y acceder mode puede tener uno de los siguientes valores:
No Señor. | Modo y descripción |
---|---|
1 | r Abre un archivo de texto existente con fines de lectura. |
2 | w Abre un archivo de texto para escritura, si no existe, se crea un nuevo archivo. Aquí, su programa comenzará a escribir contenido desde el principio del archivo. |
3 | a Abre un archivo de texto para escribir en modo adjunto, si no existe, se crea un nuevo archivo. Aquí su programa comenzará a agregar contenido en el contenido del archivo existente. |
4 | r+ Abre un archivo de texto para leer y escribir ambos. |
5 | w+ Abre un archivo de texto para leer y escribir ambos. Primero trunca el archivo a una longitud cero si existe; de lo contrario, cree el archivo si no existe. |
6 | a+ Abre un archivo de texto para leer y escribir ambos. Crea el archivo si no existe. La lectura comenzará desde el principio, pero la escritura solo se puede agregar. |
Cerrar un archivo en D
Para cerrar un archivo, use la función file.close () donde archivo contiene la referencia del archivo. El prototipo de esta función es:
file.close();
Cualquier archivo que haya sido abierto por un programa debe cerrarse cuando el programa termine de usar ese archivo. En la mayoría de los casos, los archivos no necesitan cerrarse explícitamente; se cierran automáticamente cuando se terminan los objetos de archivo.
Escribir un archivo en D
file.writeln se usa para escribir en un archivo abierto.
file.writeln("hello");
import std.stdio;
import std.file;
void main() {
File file = File("test.txt", "w");
file.writeln("hello");
file.close();
}
Cuando se compila y ejecuta el código anterior, crea un nuevo archivo test.txt en el directorio en el que se inició (en el directorio de trabajo del programa).
Leer un archivo en D
El siguiente método lee una sola línea de un archivo:
string s = file.readln();
A continuación se muestra un ejemplo completo de lectura y escritura.
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();
}
Cuando se compila y ejecuta el código anterior, lee el archivo creado en la sección anterior y produce el siguiente resultado:
hello
Aquí hay otro ejemplo para leer un archivo hasta el final del archivo.
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);
}
}
Cuando se compila y ejecuta el código anterior, lee el archivo creado en la sección anterior y produce el siguiente resultado:
line -hello
line -world
line -
Puede ver en el ejemplo anterior una tercera línea vacía ya que Writeln la lleva a la siguiente línea una vez que se ejecuta.