Vous êtes sur la page 1sur 5

Universidad Politcnica de Altamira

Alumna: Tiara Salgado Guzmn

ARCHIVOS DE TEXTO Y BINARIOS EN C#


ARCHIVOS DE TEXTO La apertura y lectura de archivos para el acceso de lectura es una parte importante de la funcionalidad de entrada y salida (ES), incluso si no necesita escribir en el archivo en cuestin. En este ejemplo se abre un archivo para su lectura, lo que resulta til para leer archivos de texto, pero que es inapropiado en el caso de archivos binarios. En este ejemplo se utiliza uno de los varios mtodos disponibles para abrir el archivo. Aunque muchas de las estructuras de datos estn disponibles para almacenar informacin que se recupera del archivo, la clase ArrayList es la estructura ms fcil de utilizar. Para abrir y leer el archivo, en este ejemplo se utilizan objetos del espacio de nombres System.IO, en concreto la claseSystem.IO.StreamReader. Para cargar y leer un archivo de texto desde Visual C# .NET, siga estos pasos: 1. Abra Visual Studio .NET. Cree una nueva aplicacin de consola en C#. Visual Studio crea una Clase esttica y un procedimiento Main() vaco. 2. Asegrese de que el proyecto hace referencia al menos al espacio de nombres System. Utilice la instruccin using en los espacios de

nombres System, System.IO y System.Collections de forma que no tenga que calificar las declaraciones de esos espacios de nombres ms adelante en el cdigo. Debe utilizar estas instrucciones antes que cualquier otra declaracin. 3. using System; 4. using System.IO; 5. using System.Collections; 6. Para abrir un archivo y leerlo, cree una nueva instancia de un objeto StreamReader y pase la ruta del archivo en el constructor de la siguiente manera: StreamReader objReader = new StreamReader("c:\\test.txt"); 7. Necesitar una variable de cadena en la que almacenar cada una de las lneas del archivo a medida que avanza en el proceso. Puesto que agregar estas lneas a un objeto ArrayList, debe declarar y crear un objeto de este tipo tambin. string sLine="";

ArrayList arrText = new ArrayList(); 8. Existen varios mtodos para leer el archivo, incluido el mtodo ReadToEnd que lee todo el archivo de una vez. Sin embargo, para este ejemplo, puede utilizar el mtodo ReadLine para que las lneas del archivo se muestren de una en una. Al llegar al final del archivo, este mtodo devuelve un valor nulo, lo que permite terminar el bucle. Mientras lee cada lnea del archivo, puede utilizar el

mtodo Add de ArrayList para insertar las lneas en la clase ArrayList. while (sLine != null) { sLine = objReader.ReadLine(); if (sLine != null) arrText.Add(sLine); } objReader.Close(); 9. Utilice un bucle For Each para escribir el contenido del objeto ArrayList recin relleno en la consola de la siguiente manera: foreach (string sOutput in arrText) Console.WriteLine(sOutput); Console.ReadLine(); 10. Guarde y ejecute el cdigo, que genera un listado del archivo en la consola. Lista completa de cdigo using System; using System.IO; using System.Collections;

namespace TextFileReader_csharp { /// <summary> /// Descripcin de resumen para Class1. /// </summary>

class Class1 { static void Main(string[] args) { StreamReader objReader = new StreamReader("c:\\test.txt"); string sLine=""; ArrayList arrText = new ArrayList();

while (sLine != null) { sLine = objReader.ReadLine(); if (sLine != null) arrText.Add(sLine); } objReader.Close();

foreach (string sOutput in arrText) Console.WriteLine(sOutput); Console.ReadLine(); } } }

ARCHIVOS BINARIOS EN C#
Al ejecutar se para en la linea "List<Datos> listaObjetos = formatter.Deserialize(fs) as List<Datos>;" y me sale el siguiente mensaje: "La secuencia de entrada no es un formato binario vlido. Los contenidos iniciales (en bytes) son: 0F-69-00-00-01-00-01-00-00-00-5B-005E-00-00-00-00 ..." 2 opcion public void obtenerDatosMeteodataTipo1() { string fichero = @"C:\76080915.DAT"; BinaryReader br = null; BinaryWriter bw = null; FileStream fs = null; int res; try { fs = File.Open(fichero, FileMode.Open); br = new BinaryReader(fs); while (fs.Position < fs.Length) res = br.ReadInt32(); Console.WriteLine("\nFin de fichero"); } finally { if (br != null) br.Close(); if (bw != null) bw.Close(); } } Con esto se supone que debera ir viendo los valores del fichero en la variable res, pero salen numeros aleatorios.

Vous aimerez peut-être aussi