Unidad IV Archivos en Java y C++ M.C. Juan Carlos Olivares Rojas
1
Archivos • 4.2 Streams en Java y C++
2
C++ • En C++ el manejo de archivos cambia drásticamente dado que se manejan clases. • Se encuentran definidas en la biblioteca <fstream> generalmente se manejan tres clases ifstream para entrada, ofstream para salida y fstream para entrada y salida. 3
Archivos en C++ • Los objetos genéricos de <iostream> (cin, cout, cerr y clog) son considerados flujos o archivos. • Se siguen realizando las mismas operaciones sobre archivos: abrir, leer/escribir, cerrar archivo con algunas características. 4
//Archivo de salida #include <cstdlib> #include <iostream> #include <fstream>
Ejemplo
using namespace std; int main(int argc, char *argv[]) {
5
Ejemplo string cadena; unsigned short int edad; ofstream archivo("archivo.txt", ios::out); if(!archivo) { cerr<<"El archivo no pudo crearse"; exit(-1); }
6
Ejemplo
//lectura de datos desde la terminal cout<<"Introduce tu nombre y edad"; cin>>cadena>>edad; archivo<<cadena<<" "<<edad; system("PAUSE"); return EXIT_SUCCESS; }
7
Archivos en C++ • Se abre un archivo al crear un objeto ofstream, se tienen los siguientes parametros: • • • •
ios::app //a ios::ate //a+ ios:in //r ios:out //w
8
Archivos en C++ • ios::nocreate //si no existe, falla • Ios::noreplace //si existe falla • El operador de fin de archivo generalmente se representa con Ctrl+z o Ctrl+d. • Se puede cerrar un archivo con el método close(), si no se utiliza al finalizar el programa el destructor lo hace.
9
Archivos en C++ //Para lectura de archivos string nombre; unsigned short edad; ifstream archivo(“archivo.txt”, ios::in) archivo>>nombre>>edad; cout<<“nombre:”<<nombre<<“ edad:”<< edad;
10
Archivos â&#x20AC;˘ Por la forma de acceder a los archivos estos se clasifican en acceso secuencial y directo. â&#x20AC;˘ Generalmente cuando se maneja archivos de texto el manejo es secuencial y cuando son binarios se pueden acceder de manera aleatoria. 11
Archivos • Se puede utilizar el método write() de ofstream para escribir en modo binario y el método read de ifstream para leer en modo binario. • Se puede utilizar el método seekp() para desplazarse de manera aleatoria por todo el archivo. 12
Archivos en C++ • Otros métodos que se pueden utilizar es el método open() para abrir, fail() para comprobar si se abrió correctamente y eof() para validar fin de archivo. • Al abrir un archivo se puede omitir su modificador y se le asignan los permisos por default. 13
Archivos en C++ â&#x20AC;˘ Se pueden agregar diversos modificadores de acceso: ios:in | ios:out, para lectura y escritura a la vez.
14
多Preguntas, dudas y comentarios?
15