7 manejo de archivos

9
Módulo I- Introducción a la Programación en Módulo I- Introducción a la Programación en la Plataforma .Net con C# la Plataforma .Net con C#

Transcript of 7 manejo de archivos

Page 1: 7 manejo de archivos

Módulo I- Introducción a la Programación en Módulo I- Introducción a la Programación en la Plataforma .Net con C#la Plataforma .Net con C#

Page 2: 7 manejo de archivos

TEMARIOTEMARIO

CAPITULO III.- INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C#

Introducción Manejo ArchivosIntroducción Manejo Archivos Utilizando las Clases File y Utilizando las Clases File y

FileInfoFileInfo Utilizando la Clase StreamUtilizando la Clase Stream

Page 3: 7 manejo de archivos

Manejo de ArchivosManejo de ArchivosInteractuar con archivos es un común requerimiento de muchas aplicaciones.

El Namespace System.IO contiene un conjunto de clases que simplifican la interacción con el sistema de archivo, ejemplo: Las clases File and FileInfo.

La Clase Files:La Clase Files: La Clase FileInfo:La Clase FileInfo:Copy()

Create()

Delete()

Exists()

CopyTo()

Delete()

Length

Open()

INTRODUCCIÓN MANEJO DE ARCHIVOSINTRODUCCIÓN MANEJO DE ARCHIVOS

Page 4: 7 manejo de archivos

Escribiendo y Leyendo de Archivos Utilizando File y Escribiendo y Leyendo de Archivos Utilizando File y FileInfoFileInfo

string filePath = "myFile.txt";...byte[] data = File.ReadAllBytes(filePath); // Datos Binarios.string[] lines = File.ReadAllLines(filePath); // Lectura Por Lineas.string data = File.ReadAllText(filePath); // Archivo completo.

string filePath = "myFile.txt";...byte[] data = File.ReadAllBytes(filePath); // Datos Binarios.string[] lines = File.ReadAllLines(filePath); // Lectura Por Lineas.string data = File.ReadAllText(filePath); // Archivo completo.

Leyendo data desde archivo

string filePath = "myFile.txt";...string[] fileLines = {"Line 1", "Line 2", "Line 3"};File.AppendAllLines(filePath, fileLines); // Concatenar Lineas.File.WriteAllLines(filePath, fileLines); // Escribir por linea....string fileContents = "I am writing this text to a file ...“; File.AppendAllText(filePath, fileContents); // Concatenar texto..File.WriteAllText(filePath, fileContents); // Escribir todas las lineas.

string filePath = "myFile.txt";...string[] fileLines = {"Line 1", "Line 2", "Line 3"};File.AppendAllLines(filePath, fileLines); // Concatenar Lineas.File.WriteAllLines(filePath, fileLines); // Escribir por linea....string fileContents = "I am writing this text to a file ...“; File.AppendAllText(filePath, fileContents); // Concatenar texto..File.WriteAllText(filePath, fileContents); // Escribir todas las lineas.

Escribiendo data en archivo

Page 5: 7 manejo de archivos

Manipulando DirectoriosManipulando DirectoriosEl Namespace System.IO contiene las clases Directory y DirectoryInfo las cuales ayudan a simplificar la interacción con directorios

string dirPath = @"C:\Users\Student\MyDirectory";...Directory.CreateDirectory(dirPath); Directory.Delete(dirPath);string[] dirs = Directory.GetDirectories(dirPath);string[] files = Directory.GetFiles(dirPath);

string dirPath = @"C:\Users\Student\MyDirectory";...Directory.CreateDirectory(dirPath); Directory.Delete(dirPath);string[] dirs = Directory.GetDirectories(dirPath);string[] files = Directory.GetFiles(dirPath);

string dirPath = @"C:\Users\Student\MyDirectory";DirectoryInfo dir = new DirectoryInfo(dirPath); ...bool exists = dir.Exists;DirectoryInfo[] dirs = dir.GetDirectories();FileInfo[] files = dir.GetFiles();string fullName = dir.FullName;

string dirPath = @"C:\Users\Student\MyDirectory";DirectoryInfo dir = new DirectoryInfo(dirPath); ...bool exists = dir.Exists;DirectoryInfo[] dirs = dir.GetDirectories();FileInfo[] files = dir.GetFiles();string fullName = dir.FullName;

Clase Directory

Clase DirectoryInfo

Page 6: 7 manejo de archivos

Que es un Streams?Que es un Streams?

Fuente Repositorio

Aplicación

0100011

1110010

1010010

Un Stream es un mecanismo que nos permite manipular los datos en partes manejables.

Page 7: 7 manejo de archivos

Leyendo y Escribiendo Datos Binarios

byte[] dataCollection = { 1, 4, 6, 7, 12, 33, 26, 98, 82, 101 };FileStream destFile = new FileStream(destinationFilePath);BinaryWriter writer = new BinaryWriter(destFile);foreach (byte data in dataCollection){ writer.Write(data);}writer.Close();destFile.Close();

byte[] dataCollection = { 1, 4, 6, 7, 12, 33, 26, 98, 82, 101 };FileStream destFile = new FileStream(destinationFilePath);BinaryWriter writer = new BinaryWriter(destFile);foreach (byte data in dataCollection){ writer.Write(data);}writer.Close();destFile.Close();

FileStream sourceFile = new FileStream(sourceFilePath);BinaryReader reader = new BinaryReader(sourceFile);int position = 0;int length = (int)reader.BaseStream.Length;byte[] dataCollection = new byte[length];int returnedByte;while ((returnedByte = reader.Read()) != -1){ dataCollection[position] = (byte)returnedByte; position += sizeof(byte);}reader.Close();sourceFile.Close();

FileStream sourceFile = new FileStream(sourceFilePath);BinaryReader reader = new BinaryReader(sourceFile);int position = 0;int length = (int)reader.BaseStream.Length;byte[] dataCollection = new byte[length];int returnedByte;while ((returnedByte = reader.Read()) != -1){ dataCollection[position] = (byte)returnedByte; position += sizeof(byte);}reader.Close();sourceFile.Close();

Clase BinaryReader

Clase BinaryWriter

Page 8: 7 manejo de archivos

Leyendo y Escribiendo TextoLeyendo y Escribiendo TextoFileStream sourceFile = new FileStream(sourceFilePath);StreamReader reader = new StreamReader(sourceFile);StringBuilder fileContents = new StringBuilder();while (reader.Peek() != -1){ fileContents.Append((char)reader.Read());}string data = fileContents.ToString();reader.Close();sourceFile.Close();

FileStream sourceFile = new FileStream(sourceFilePath);StreamReader reader = new StreamReader(sourceFile);StringBuilder fileContents = new StringBuilder();while (reader.Peek() != -1){ fileContents.Append((char)reader.Read());}string data = fileContents.ToString();reader.Close();sourceFile.Close();

FileStream destFile = new FileStream( “..."); StreamWriter writer = new StreamWriter(destFile);

writer.WriteLine(“Hola, Esto se escribira en el archivo");

writer.Close();destFile.Close();

FileStream destFile = new FileStream( “..."); StreamWriter writer = new StreamWriter(destFile);

writer.WriteLine(“Hola, Esto se escribira en el archivo");

writer.Close();destFile.Close();

Clase StreamReader

Clase StreamWriter

Page 9: 7 manejo de archivos

EjerciciosEjercicios

1.1. Desarrollar un programa que guarde y lea de un Desarrollar un programa que guarde y lea de un archivo utilizando la clase (File o FileInfo) los archivo utilizando la clase (File o FileInfo) los siguientes dato: Cedula, Nombre, Apellido, siguientes dato: Cedula, Nombre, Apellido, Teléfono, Fecha Nacimiento. El programa debe Teléfono, Fecha Nacimiento. El programa debe permitir escribir un máximo de 5 registros con los permitir escribir un máximo de 5 registros con los datos especificados. El menú consiste de una datos especificados. El menú consiste de una opción para escribir y otra de lectura que mostrara opción para escribir y otra de lectura que mostrara cada registro con sus datos en pantalla.cada registro con sus datos en pantalla.

2.2. Desarrollar el programa anterior utilizando Desarrollar el programa anterior utilizando FileStream, StreamWriter y StreamReaderFileStream, StreamWriter y StreamReader