SlideShare une entreprise Scribd logo
1  sur  26
Leyendo y Escribiendo Archivos


Jonathan Aldave Mendoza
Perú

Jairo Alberto Contreras Barragán
Microsoft Student Partner - Colombia
Agenda
 Manejando
                   • Clases File y Directory
 archivos y        • Enumeraciones FileAccess y FileMode
 directorios

  Lectura y
                   • Clase StreamFile
 Escritura de      • Facilitando tareas de Lectura y Escritura
  Archivos

Mas allá de los    • Uso de la memoria
archivos físicos   • Aplicando Búferes
Antes de comenzar




                 Stream

FileStream   MemoryStream   BufferedStream
                                             …
Antes de comenzar


static void leerStream(Stream stream)
    {
       stream.Position = 0;

       while (stream.Position != stream.Length)
       {
         Console.Write(stream.ReadByte());
       }
   }
Manejando archivos y
                                    directorios



- Abrir y Crear archivos
- Operaciones de escritura y lectura de archivos
- Al crear o abrir un archivo, retorno diferentes clases de objetos




- Ofrece la funcionalidad necesario para interactuar con directorios
- Crear y eliminar directorios
- Consultar el estado del directorio.
Manejando archivos y
static void Main(string[] args)
                                                      directorios
     {
        string ruta = @quot;E:JairoDocumentssample.txtquot;;

        Console.WriteLine(quot;El archivo existe?: {0}quot;, File.Exists(ruta));
        Console.WriteLine(quot;Fecha de creación: {0}quot;, File.GetCreationTime(ruta));
        Console.WriteLine(quot;Fecha última de consulta: {0}quot;, File.GetLastAccessTime(ruta));
        Console.WriteLine(quot;Fecha última modificación: {0}quot;, File.GetLastWriteTime(ruta));

        ruta = @quot;E:JairoDocumentsquot;;
        Console.WriteLine(quot;El directorio existe?: {0}quot;, Directory.Exists(ruta));
        Console.WriteLine(quot;Archivos de la carpeta Documents:nquot;);

        string[] archivos = Directory.GetFiles(ruta);
        foreach(string name in archivos)
           Console.WriteLine(quot;- {0}quot;,name);

        Console.WriteLine(quot;nnDirectorios dentro de la carpeta Documents:nquot;);
        string[] directorios = Directory.GetDirectories(ruta);
        foreach(string name in directorios)
           Console.WriteLine(quot;- {0}quot;, name);
        Console.ReadKey();
    }
Manejando archivos y
    directorios
Abrir, Leer y Escribir
                               en archivos

                 class Program
                   {
- Read               static void Main(string[] args)
- Write              {
- ReadWrite             string ruta = @quot;E:JairoDocumentssample.txtquot;;
                        FileStream archivo1 = File.OpenRead(ruta);

                          string cadenaTexto = quot;Hola latinoamerica!!!quot;;
                          byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto);
                          int no_bytes = bytes.Length;
- Append                  archivo1.Write(bytes, 0, no_bytes);
- Create              }
                  }
- CreateNew
- OpenOrCreate
- Truncate
Abrir, Leer y Escribir
                               en archivos

                 class Program
                   {
- Read               static void Main(string[] args)
- Write              {
- ReadWrite             string ruta = @quot;E:JairoDocumentssample.txtquot;;
                        FileStream archivo1 = File.OpenWrite(ruta);

                          string cadenaTexto = quot;Hola latinoamerica!!!quot;;
                          byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto);
                          int no_bytes = bytes.Length;
- Append                  archivo1.Write(bytes, 0, no_bytes);
- Create              }
                  }
- CreateNew
- OpenOrCreate
- Truncate
Abrir, Leer y Escribir
                                         en archivos


- Append           - OpenOrCreate                 - Read          - ReadWrite
- Create           - Truncate                     - Write
- CreateNew

  static void Main(string[] args)
      {
         string ruta = @quot;E:JairoDocumentssample.txtquot;;
         FileStream archivo1;
         archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write);
         string cadenaTexto = quot;Hola latinoamerica!!!quot;;
         byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto);
         int no_bytes = bytes.Length;
         archivo1.Write(bytes, 0, no_bytes);
      }
Abrir, Leer y Escribir
                                         en archivos


- Append           - OpenOrCreate                 - Read          - ReadWrite
- Create           - Truncate                     - Write
- CreateNew

  static void Main(string[] args)
      {
         string ruta = @quot;E:JairoDocumentssample.txtquot;;
         FileStream archivo1;
         archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write);
         string cadenaTexto = quot;Hola latinoamerica!!!quot;;
         byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto);
         int no_bytes = bytes.Length;
         archivo1.Write(bytes, 0, no_bytes);
      }
La clase FileStream provee la funcionalidad
          básica para abrir archivos de escritura o
                           lectura.
static void Main(string[] args)
    {
       string ruta = @quot;E:JairoDocumentssample.txtquot;;
       FileStream archivo1;
       archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write);
       string cadenaTexto = quot;Hola latinoamerica!!!quot;;
       byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto);
       int no_bytes = bytes.Length;
       archivo1.Write(bytes, 0, no_bytes);
    }
La clase FileStream provee la funcionalidad
         básica para abrir archivos de escritura o
                          lectura.



 Lectura de archivos de texto



Escritura de archivos de texto
Mejorando la lectura
static void Main(string[] args)
                                             y escritura
    {
       string ruta = @quot;E:JairoDocumentssample.txtquot;;
       FileStream archivo1;
       archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write);
       string cadenaTexto = quot;Hola latinoamerica!!!quot;;
       byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto);
       int no_bytes = bytes.Length;
       archivo1.Write(bytes, 0, no_bytes);
    }

static void Main(string[] args)
     {
        string ruta = @quot;E:JairoDocumentssample.txtquot;;
        FileStream archivo1;
        archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write);
        string cadenaTexto = quot;Hola latinoamerica!!!quot;;
        StreamWriter sw = new StreamWriter(archivo1);
        sw.Write(cadenaTexto);
        sw.Close();
        archivo1.Close();
     }
Mas allá de los
archivos físicos
Usando la memoria
Usando la memoria
VENTAJAS
 Lectura eficiente
 Escritura eficiente
 Facilidad para persistir


CONSIDERACIONES
 En principio no hay persistencia
 Contiene un buffer interno para mayor eficiencia
Método    Descripción
ToWrite   Escribe el contenido completo de esta
          secuencia de memoria en otra
          secuencia.
Flush     Se sobrecarga para volverlo inválido
Recuperando una
imagen de una base
de datos




                     Demo
Aumentando la
  eficiencia
Aumentando la
  eficiencia
Aumentando la
  eficiencia
Aumentando la
  eficiencia
Aumentando la
                                                  eficiencia
using System;
using System.Text;
using System.IO;

class Program
   {
     static void Main(string[] args)
     {
       string ruta = @quot;E:JairoDocumentssample.txtquot;;
       Stream fs = File.OpenRead(ruta);

          BufferedStream bufer = new BufferedStream(fs);
          byte[] bytes = new byte[128];

          bufer.Read(bytes, 0, 128);
          Console.WriteLine(quot;Resultado de lectura: quot; + Encoding.ASCII.GetString(bytes));
          Console.ReadLine();
      }
  }
Hoy viste:
         Leyendo y Escribiendo Archivos

             MUCHAS GRACIAS
Jonathan…
Microsoft Student Partner – Colombia

Jairo Alberto Contreras Barragán
Microsoft Student Partner - Colombia

Contenu connexe

Tendances (17)

11. lectura y escritura de información
11. lectura y escritura de información11. lectura y escritura de información
11. lectura y escritura de información
 
Archivos Java
Archivos JavaArchivos Java
Archivos Java
 
Presentacion swoogle
Presentacion swooglePresentacion swoogle
Presentacion swoogle
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
 
Tema1oficial
Tema1oficialTema1oficial
Tema1oficial
 
Rendimiento del sistema Tryton
Rendimiento del sistema TrytonRendimiento del sistema Tryton
Rendimiento del sistema Tryton
 
Flujos y archivos
Flujos y archivosFlujos y archivos
Flujos y archivos
 
Php slideshare
Php slidesharePhp slideshare
Php slideshare
 
Manejo de archivos
Manejo de archivosManejo de archivos
Manejo de archivos
 
Crear unidades organizativas
Crear unidades organizativasCrear unidades organizativas
Crear unidades organizativas
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVA
 
Acceso a datos
Acceso a datosAcceso a datos
Acceso a datos
 
Entorno enseñanza aprendizaje on-line
Entorno  enseñanza aprendizaje on-lineEntorno  enseñanza aprendizaje on-line
Entorno enseñanza aprendizaje on-line
 
Bryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficherosBryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficheros
 
Ppt actividad ii
Ppt actividad iiPpt actividad ii
Ppt actividad ii
 
Archivos en C++
Archivos en C++Archivos en C++
Archivos en C++
 
Manejo de archivos en el lenguaje C
Manejo de archivos en el lenguaje CManejo de archivos en el lenguaje C
Manejo de archivos en el lenguaje C
 

En vedette

Navigating The File System
Navigating The File SystemNavigating The File System
Navigating The File Systemkayrambal
 
Comunicaciones Unificadas De Ms
Comunicaciones Unificadas De MsComunicaciones Unificadas De Ms
Comunicaciones Unificadas De Mskayrambal
 
Navegar Sistema De Archivos
Navegar Sistema De ArchivosNavegar Sistema De Archivos
Navegar Sistema De Archivoskayrambal
 
SerializacióN Part 2
SerializacióN Part 2SerializacióN Part 2
SerializacióN Part 2kayrambal
 
Conversion Entre Tipos Leccion 4
Conversion Entre Tipos   Leccion 4Conversion Entre Tipos   Leccion 4
Conversion Entre Tipos Leccion 4kayrambal
 
Linq En Visual Basic 2008
Linq En Visual Basic 2008Linq En Visual Basic 2008
Linq En Visual Basic 2008kayrambal
 
Visual basic-2008
Visual basic-2008Visual basic-2008
Visual basic-2008ramcoll
 

En vedette (8)

Navigating The File System
Navigating The File SystemNavigating The File System
Navigating The File System
 
Comunicaciones Unificadas De Ms
Comunicaciones Unificadas De MsComunicaciones Unificadas De Ms
Comunicaciones Unificadas De Ms
 
Atributos
AtributosAtributos
Atributos
 
Navegar Sistema De Archivos
Navegar Sistema De ArchivosNavegar Sistema De Archivos
Navegar Sistema De Archivos
 
SerializacióN Part 2
SerializacióN Part 2SerializacióN Part 2
SerializacióN Part 2
 
Conversion Entre Tipos Leccion 4
Conversion Entre Tipos   Leccion 4Conversion Entre Tipos   Leccion 4
Conversion Entre Tipos Leccion 4
 
Linq En Visual Basic 2008
Linq En Visual Basic 2008Linq En Visual Basic 2008
Linq En Visual Basic 2008
 
Visual basic-2008
Visual basic-2008Visual basic-2008
Visual basic-2008
 

Similaire à Leyendo y Escribiendo Archivos con C

PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSDarwin Durand
 
Archivos secuenciales en PYTHON
Archivos secuenciales en PYTHONArchivos secuenciales en PYTHON
Archivos secuenciales en PYTHONHaylin Ellenes
 
Flujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaFlujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaIngeniería Nica
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en javaWhaleejaa Wha
 
Manejo+de+archivos+en+java
Manejo+de+archivos+en+javaManejo+de+archivos+en+java
Manejo+de+archivos+en+javaWhaleejaa Wha
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en javaWhaleejaa Wha
 
Metodos de entrada y Salida
Metodos de entrada y SalidaMetodos de entrada y Salida
Metodos de entrada y SalidaCristian Andres
 
Temas programacion java_3
Temas programacion java_3Temas programacion java_3
Temas programacion java_3Wally IG
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Textonakaryortegaleon
 
Framework .NET 3.5 14 Gestión de archivos y serialización
Framework .NET 3.5 14  Gestión de archivos y serializaciónFramework .NET 3.5 14  Gestión de archivos y serialización
Framework .NET 3.5 14 Gestión de archivos y serializaciónAntonio Palomares Sender
 
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsamdevxon9
 
Jyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc X
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e ioprogramadorjavablog
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenasJuan Durango
 

Similaire à Leyendo y Escribiendo Archivos con C (20)

PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
7 manejo de archivos
7 manejo de archivos7 manejo de archivos
7 manejo de archivos
 
Archivos secuenciales en PYTHON
Archivos secuenciales en PYTHONArchivos secuenciales en PYTHON
Archivos secuenciales en PYTHON
 
Flujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaFlujos de Entrada y Salida en Java
Flujos de Entrada y Salida en Java
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en java
 
Manejo+de+archivos+en+java
Manejo+de+archivos+en+javaManejo+de+archivos+en+java
Manejo+de+archivos+en+java
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en java
 
Metodos de entrada y Salida
Metodos de entrada y SalidaMetodos de entrada y Salida
Metodos de entrada y Salida
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
Temas programacion java_3
Temas programacion java_3Temas programacion java_3
Temas programacion java_3
 
Archivos
ArchivosArchivos
Archivos
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Texto
 
Framework .NET 3.5 14 Gestión de archivos y serialización
Framework .NET 3.5 14  Gestión de archivos y serializaciónFramework .NET 3.5 14  Gestión de archivos y serialización
Framework .NET 3.5 14 Gestión de archivos y serialización
 
Utilización de la clase math
Utilización de la clase mathUtilización de la clase math
Utilización de la clase math
 
Prog_II_archivo_guia_5
Prog_II_archivo_guia_5Prog_II_archivo_guia_5
Prog_II_archivo_guia_5
 
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsam
 
Jyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientes
 
Lab6-POO
Lab6-POOLab6-POO
Lab6-POO
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 

Leyendo y Escribiendo Archivos con C

  • 1. Leyendo y Escribiendo Archivos Jonathan Aldave Mendoza Perú Jairo Alberto Contreras Barragán Microsoft Student Partner - Colombia
  • 2. Agenda Manejando • Clases File y Directory archivos y • Enumeraciones FileAccess y FileMode directorios Lectura y • Clase StreamFile Escritura de • Facilitando tareas de Lectura y Escritura Archivos Mas allá de los • Uso de la memoria archivos físicos • Aplicando Búferes
  • 3. Antes de comenzar Stream FileStream MemoryStream BufferedStream …
  • 4. Antes de comenzar static void leerStream(Stream stream) { stream.Position = 0; while (stream.Position != stream.Length) { Console.Write(stream.ReadByte()); } }
  • 5. Manejando archivos y directorios - Abrir y Crear archivos - Operaciones de escritura y lectura de archivos - Al crear o abrir un archivo, retorno diferentes clases de objetos - Ofrece la funcionalidad necesario para interactuar con directorios - Crear y eliminar directorios - Consultar el estado del directorio.
  • 6. Manejando archivos y static void Main(string[] args) directorios { string ruta = @quot;E:JairoDocumentssample.txtquot;; Console.WriteLine(quot;El archivo existe?: {0}quot;, File.Exists(ruta)); Console.WriteLine(quot;Fecha de creación: {0}quot;, File.GetCreationTime(ruta)); Console.WriteLine(quot;Fecha última de consulta: {0}quot;, File.GetLastAccessTime(ruta)); Console.WriteLine(quot;Fecha última modificación: {0}quot;, File.GetLastWriteTime(ruta)); ruta = @quot;E:JairoDocumentsquot;; Console.WriteLine(quot;El directorio existe?: {0}quot;, Directory.Exists(ruta)); Console.WriteLine(quot;Archivos de la carpeta Documents:nquot;); string[] archivos = Directory.GetFiles(ruta); foreach(string name in archivos) Console.WriteLine(quot;- {0}quot;,name); Console.WriteLine(quot;nnDirectorios dentro de la carpeta Documents:nquot;); string[] directorios = Directory.GetDirectories(ruta); foreach(string name in directorios) Console.WriteLine(quot;- {0}quot;, name); Console.ReadKey(); }
  • 7. Manejando archivos y directorios
  • 8. Abrir, Leer y Escribir en archivos class Program { - Read static void Main(string[] args) - Write { - ReadWrite string ruta = @quot;E:JairoDocumentssample.txtquot;; FileStream archivo1 = File.OpenRead(ruta); string cadenaTexto = quot;Hola latinoamerica!!!quot;; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; - Append archivo1.Write(bytes, 0, no_bytes); - Create } } - CreateNew - OpenOrCreate - Truncate
  • 9. Abrir, Leer y Escribir en archivos class Program { - Read static void Main(string[] args) - Write { - ReadWrite string ruta = @quot;E:JairoDocumentssample.txtquot;; FileStream archivo1 = File.OpenWrite(ruta); string cadenaTexto = quot;Hola latinoamerica!!!quot;; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; - Append archivo1.Write(bytes, 0, no_bytes); - Create } } - CreateNew - OpenOrCreate - Truncate
  • 10. Abrir, Leer y Escribir en archivos - Append - OpenOrCreate - Read - ReadWrite - Create - Truncate - Write - CreateNew static void Main(string[] args) { string ruta = @quot;E:JairoDocumentssample.txtquot;; FileStream archivo1; archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write); string cadenaTexto = quot;Hola latinoamerica!!!quot;; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; archivo1.Write(bytes, 0, no_bytes); }
  • 11. Abrir, Leer y Escribir en archivos - Append - OpenOrCreate - Read - ReadWrite - Create - Truncate - Write - CreateNew static void Main(string[] args) { string ruta = @quot;E:JairoDocumentssample.txtquot;; FileStream archivo1; archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write); string cadenaTexto = quot;Hola latinoamerica!!!quot;; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; archivo1.Write(bytes, 0, no_bytes); }
  • 12. La clase FileStream provee la funcionalidad básica para abrir archivos de escritura o lectura. static void Main(string[] args) { string ruta = @quot;E:JairoDocumentssample.txtquot;; FileStream archivo1; archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write); string cadenaTexto = quot;Hola latinoamerica!!!quot;; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; archivo1.Write(bytes, 0, no_bytes); }
  • 13. La clase FileStream provee la funcionalidad básica para abrir archivos de escritura o lectura. Lectura de archivos de texto Escritura de archivos de texto
  • 14. Mejorando la lectura static void Main(string[] args) y escritura { string ruta = @quot;E:JairoDocumentssample.txtquot;; FileStream archivo1; archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write); string cadenaTexto = quot;Hola latinoamerica!!!quot;; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; archivo1.Write(bytes, 0, no_bytes); } static void Main(string[] args) { string ruta = @quot;E:JairoDocumentssample.txtquot;; FileStream archivo1; archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write); string cadenaTexto = quot;Hola latinoamerica!!!quot;; StreamWriter sw = new StreamWriter(archivo1); sw.Write(cadenaTexto); sw.Close(); archivo1.Close(); }
  • 15. Mas allá de los archivos físicos
  • 17. Usando la memoria VENTAJAS Lectura eficiente Escritura eficiente Facilidad para persistir CONSIDERACIONES En principio no hay persistencia Contiene un buffer interno para mayor eficiencia
  • 18. Método Descripción ToWrite Escribe el contenido completo de esta secuencia de memoria en otra secuencia. Flush Se sobrecarga para volverlo inválido
  • 19. Recuperando una imagen de una base de datos Demo
  • 20. Aumentando la eficiencia
  • 21. Aumentando la eficiencia
  • 22. Aumentando la eficiencia
  • 23. Aumentando la eficiencia
  • 24. Aumentando la eficiencia using System; using System.Text; using System.IO; class Program { static void Main(string[] args) { string ruta = @quot;E:JairoDocumentssample.txtquot;; Stream fs = File.OpenRead(ruta); BufferedStream bufer = new BufferedStream(fs); byte[] bytes = new byte[128]; bufer.Read(bytes, 0, 128); Console.WriteLine(quot;Resultado de lectura: quot; + Encoding.ASCII.GetString(bytes)); Console.ReadLine(); } }
  • 25.
  • 26. Hoy viste: Leyendo y Escribiendo Archivos MUCHAS GRACIAS Jonathan… Microsoft Student Partner – Colombia Jairo Alberto Contreras Barragán Microsoft Student Partner - Colombia