jueves, 4 de junio de 2009

Aplicaciones con archivos

Aplicaciones con archivos

Crea un archivo desde java, e implementa la entrada de datos al archivo

// CLeercars.cs

using System;
using System.IO;

public class CLeerCars

{

public static void Main (string[] args)
{

StreamReader sr = null;
String str;

try
{

// Crea un flujo desde el archivo doc.txt
sr = new StreamReader("doc.txt");

// Lee del archivo una línea de texto

str = sr.ReadLine();

// Mientras la cadena str no esté vacía
while (str != null)
{

// Muestra la línea leída
Console.WriteLine(str);

// Lee la línea siguiente

str = sr.ReadLine();

}

}

catch(IOException e)
{

Console.WriteLine("Error: " + e.Message);

}

finally
{

// Cierra el archivo
if (sr != null) sr.Close();

}

}

}

El siguiente programa pregunta al usuario si desea sobreescribir los datos existentes en el archivo.

// CEscribirCars2.cs

using System;
using System.IO;

public class CEscribirCars
{

public static void Main ( )
{

StreamWriter sw = null;
String str;

try
{

// Obtiene el nombre del archivo desde la entrada estándar

Console.Write("Nombre del archivo: ");
str = Console.ReadLine();

char resp = 's';
if ( File.Exists(str) )
{

Console.Write("El archivo existe ¿desea sobreescribirlo? (s/n) ");
resp = (char)Console.Read();
// Salta los bytes no leídos del flujo de entrada estándar

Console.ReadLine();

}

if (resp != 's') return;

// Crea un flujo hacia el archivo seleccionado por el usuario.
sw = new StreamWriter(str);

Console.WriteLine("Escriba las líneas de texto a almacenar
en el archivo.\n" + "Finalice cada línea pulsando
la tecla .\n" + "Para finalizar pulse sólo la tecla .\n");

// Lee una línea de la entrada estándar

str = Console.ReadLine();

// Mientras la cadena str no esté vacía
while (str.Length != 0)
{

// Escribe la línea leída en el archivo
sw.WriteLine(str);

// Lee la línea siguiente
str = Console.ReadLine();

}

}

catch(UnauthorizedAccessException e)
{

Console.WriteLine("Error: " + e.Message);

}
catch(IOException e)
{

Console.WriteLine("Error: " + e.Message);

}
finally
{

if (sw != null) sw.Close();

}

}

}

1 comentario: