SlideShare une entreprise Scribd logo
1  sur  18
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                      Manejo de archivos




                                     Esencial para TODO el semestre


                                          Lic. Nancy Michelle Torres Villanueva   1
TALLER DE PROGRAMACIÓN DE SISTEMAS
                                                                   Clases para IO
                                                                                         Object
                                                                                                                                                      RandomAccessFile

                                                                                                                                                                File
                  InputStream                                      OutputStream                                         Reader                                     Writer




                                                                                                                                                                        PrintWriter
                                                                                                               BufferedReader




                                                                                                                                                       BufferedWriter
                             FileInputStream




                                                                      FileOutputStream
                                               FilterInputStream




                                                                                                                                 InputStreamReader
                                                                                          FilterOutputStream




                                                                                                                                                                                          OutputStreamReader
                                                                                                                                                     FileReader
                                                    DataInputStream
                                                                                                     DataOutputStream
                                                                                                                                                                        FileWriter
         BufferedInputStream
                                                                                    BufferedOutputStream

                                                                      Lic. Nancy Michelle Torres Villanueva                                                                           2
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                        Clases para flujos de entrada
                                     Se utilizan para leer datos de una fuente de
                                     entrada (archivo, cadena o memoria)
                                     Flujo de bytes: InputStream,
                                     BufferedInputStream, DataInputStream,
                                     FileInputStream

                                     Flujo de caracteres: Reader, BufferReader,
                                     FileReader




                                                  Lic. Nancy Michelle Torres Villanueva   3
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                          Clases para flujo de salida
                                     Son las homólogas a las clases de flujo de
                                     entrada y se utilizan para enviar flujos de datos a
                                     dispositivos de salida
                                     Flujo de bytes: OutputStream,
                                     PrintStream, BufferedOutputStream,
                                     DataOutputStream y FileOutputStream

                                     Flujo de caracteres : Writer, PrintWriter,
                                     FileWriter



                                                    Lic. Nancy Michelle Torres Villanueva   4
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                               Clases de Archivo
                                     File y RandomAccesFile (mayor control sobre
                                     los archivos)




                                                 Lic. Nancy Michelle Torres Villanueva   5
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                                        La clase File
                                     ●   La clase java.io.File permite obtener la
                                         información de las propiedades de un archivo.
                                         No es posible escribir o leer el contenido de un
                                         archivo, pero es útil para determinar el estado
                                         del mismo (p.e. si es un archivo o directorio).
                                         La forma general de construcción es:
                                         File obj = new File(ruta_del_archivo);
                                     ●   Si el archivo no existe, aún así el objeto se
                                         construye.


                                                      Lic. Nancy Michelle Torres Villanueva   6
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                          La clase RandomAccessFile
                                     ●   Los archivos de acceso aleatorio se
                                         caracterizan porque es posible mover el
                                         apuntador de archivo a cualquier posición
                                         dentro del mismo y efectuar operaciones de
                                         escritura y lectura a la vez. La forma general de
                                         construcción es:
                                     RandomAccessFile arch = new
                                     RandomAccessFile(String nombre, String
                                     modo);
                                     RandomAccessFile arch = new
                                     RandomAccessFile(File obj, String modo);

                                                     Lic. Nancy Michelle Torres Villanueva   7
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                                  Flujos de archivos
                                     ●   Otra forma de manipulación de archivos es
                                         tratándolos como flujos continuos de bytes.
                                         Cada archivo entonces sería una cinta con la
                                         secuencia de información para un archivo
                                         dado.
                                     ●   A diferencia del acceso aleatorio, en éstos se
                                         presenta un acceso secuencial. Al inicio, el
                                         puntero de archivo se coloca en el primer byte
                                         y tendrá que ir consumiendo bytes para
                                         colocarse en los siguientes bytes hasta llegar al
                                         final.
                                     ●               Lic. Nancy Michelle Torres Villanueva   8
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                                ... Flujos de archivos
                                     ●   Si se desea leer desde el principio el archivo se
                                         tendrá que “rebobinar” la cinta y volverlo a leer.
                                     ●   La clase InputStream es el flujo de entrada,
                                         mientras que OutputStream lo es para salida.
                                         Java ofrece subclases de estas clases base
                                         que especializan la interpretación de los
                                         bloques de bytes. Por ejemplo,
                                         FileInputStream asocia un archivo como un
                                         flujo de entrada, mientras que
                                         FileOutputStream trata a un archivo de
                                         escritura como un flujo de salida.
                                                      Lic. Nancy Michelle Torres Villanueva   9
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                                ... Flujos de archivos
                                     ●   Los métodos clásicos son read() y write(),
                                         respectivamente




                                                     Lic. Nancy Michelle Torres Villanueva   10
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                                   Flujos de objetos
                                     ●   Es posible escribir y leer objetos de un flujo de
                                         cualquier clase. Las clases ObjectInputStream
                                         y ObjectOutputStream ofrecen la posibilidad
                                         de escribir tanto datos primitivos y objetos.
                                     ●   Lo interesante de estas clases es que nos
                                         permiten “guardar” permanentemente el estado
                                         de un objeto y posteriormente recuperarlo. Por
                                         ejemplo, una ventana pudiera ser guardada en
                                         archivo y luego, restaurarla.


                                                     Lic. Nancy Michelle Torres Villanueva   11
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                                 ... Flujos de objetos
                                     ●   Veamos la “magia” de esta clase. Por principio
                                         de cuentas, la serialización es el proceso de
                                         transferir los bytes correspondientes a un
                                         objeto a través de un flujo. Este proceso
                                         garantiza que el objeto se transmite
                                         completamente (de allí su nombre).
                                     ●   Un objeto Java serializable es uno cuya clase
                                         implementa la interface Serializable. Esta
                                         interface no posee métodos, solo indica a la
                                         máquina virtual que ese objeto puede
                                         transmitirse por un flujo.
                                     ●               Lic. Nancy Michelle Torres Villanueva   12
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                               ... Flujos de objetos
                                     ● La forma genérica de un objeto serializable es:
                                     import java.io.*;
                                     public class NomClase implements
                                     Serializable {
                                     //Código clase
                                     }




                                                   Lic. Nancy Michelle Torres Villanueva   13
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                                           Actividad
                                     ●   Hagamos un pequeño programa que construya
                                         un objeto y lo guarde en archivo. Otro
                                         programa leerá el archivo y le “volverá a dar
                                         vida” al objeto.




                                                    Lic. Nancy Michelle Torres Villanueva   14
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                             La clase BufferedReader
                                     ●   Almacenamiento temporal en un buffer, para no
                                         actuar directamente sobre el stream.
                                     ●   Igual que los streams de bytes se deben cerrar
                                         explícitamente para liberar sus recursos
                                         asociados (close).
                                     BufferedReader in = new BufferedReader(new
                                     FileReader(new File(ruta));
                                     ●   Para leer se utliza readLine()



                                                      Lic. Nancy Michelle Torres Villanueva   15
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                              La clase BufferedWriter
                                     ●   Para la escritura solo cambia el método
                                     BufferedWriter out = new BufferedWriter(new
                                     FileWriter(new File(ruta));
                                     ●   Para escribir se utiliza write()




                                                      Lic. Nancy Michelle Torres Villanueva   16
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                                            Actividad
                                     ●   Generar un programa que lea un archivo,
                                         mientras lee cada renglon, deberá mostrarlo
                                         con un contador en pantalla y deberá
                                         detenerse al encontrar la palabra END.




                                                     Lic. Nancy Michelle Torres Villanueva   17
TALLER DE PROGRAMACIÓN DE SISTEMAS

                                                                   Tarea
                                     ●   Investigar las diferencias entre las clases para
                                         lectura de archivos y evaluar la mas
                                         conveniente para las prácticas de este
                                         semestre.
                                     ●




                                                      Lic. Nancy Michelle Torres Villanueva   18

Contenu connexe

Tendances

Conexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlConexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlROQUE Caldas Dominguez
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVAinnovalabcun
 
Fundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidadFundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidademilio_ambrosio
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datoshugodanielgd
 
Fundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - IntroducciónFundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - IntroducciónManuel Padilla
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSdfgdfgs
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
Manual de conexion a una base de datos con gambas
Manual de conexion a una base de datos con gambasManual de conexion a una base de datos con gambas
Manual de conexion a una base de datos con gambasMoposita1994
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql commandLouis Jhosimar
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datosCaro_Noirgean
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 

Tendances (20)

Conexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlConexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysql
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
NORMALIZACIÓN
NORMALIZACIÓN  NORMALIZACIÓN
NORMALIZACIÓN
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
Fundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidadFundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidad
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datos
 
Fundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - IntroducciónFundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - Introducción
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Conceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de DatosConceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de Datos
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Manual de conexion a una base de datos con gambas
Manual de conexion a una base de datos con gambasManual de conexion a una base de datos con gambas
Manual de conexion a una base de datos con gambas
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql command
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
 
Comandos java
Comandos javaComandos java
Comandos java
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 

Similaire à Manejo de archivos en JAVA

Similaire à Manejo de archivos en JAVA (20)

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
 
Flujos y archivo en java
Flujos y archivo en javaFlujos y archivo en java
Flujos y archivo en java
 
Flujos y archivos
Flujos y archivosFlujos y archivos
Flujos y archivos
 
Archivos aleatorios
Archivos aleatoriosArchivos aleatorios
Archivos aleatorios
 
Archivos 15
Archivos 15Archivos 15
Archivos 15
 
S7-POO-4.1 Archivos Genéricos
S7-POO-4.1 Archivos GenéricosS7-POO-4.1 Archivos Genéricos
S7-POO-4.1 Archivos Genéricos
 
S7-P2.pptx
S7-P2.pptxS7-P2.pptx
S7-P2.pptx
 
S7-Archivos
S7-ArchivosS7-Archivos
S7-Archivos
 
S7 p2
S7 p2S7 p2
S7 p2
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
13-Unidad 4: Manejo de archivos y seguimiento del proyecto
13-Unidad 4: Manejo de archivos y seguimiento del proyecto13-Unidad 4: Manejo de archivos y seguimiento del proyecto
13-Unidad 4: Manejo de archivos y seguimiento del proyecto
 
Flujos y archivos
Flujos y archivosFlujos y archivos
Flujos y archivos
 
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividadS2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
 
Metodos de entrada y Salida
Metodos de entrada y SalidaMetodos de entrada y Salida
Metodos de entrada y Salida
 
Entrada y Salida de datos en Java
Entrada y Salida de datos en JavaEntrada y Salida de datos en Java
Entrada y Salida de datos 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
 
Manejo+de+archivos+en+java
Manejo+de+archivos+en+javaManejo+de+archivos+en+java
Manejo+de+archivos+en+java
 
Serializacion
SerializacionSerializacion
Serializacion
 

Plus de Michelle Torres

Prototipado rápido para web y mobile
Prototipado rápido para web y mobilePrototipado rápido para web y mobile
Prototipado rápido para web y mobileMichelle Torres
 
Uso de Puerto paralelo en C
Uso de Puerto paralelo en CUso de Puerto paralelo en C
Uso de Puerto paralelo en CMichelle Torres
 
Material de administración y auditoría de la función informática
Material de administración y auditoría de la función informáticaMaterial de administración y auditoría de la función informática
Material de administración y auditoría de la función informáticaMichelle Torres
 
Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Michelle Torres
 
Taller de programación de sistemas. Descripción de práctica 1
Taller de programación de sistemas. Descripción de práctica 1Taller de programación de sistemas. Descripción de práctica 1
Taller de programación de sistemas. Descripción de práctica 1Michelle Torres
 
Modos de direccionamiento para el HC12 de motorola
Modos de direccionamiento para el HC12 de motorolaModos de direccionamiento para el HC12 de motorola
Modos de direccionamiento para el HC12 de motorolaMichelle Torres
 
Programación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVAProgramación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVAMichelle Torres
 
Recordando Java desde Cero
Recordando Java desde CeroRecordando Java desde Cero
Recordando Java desde CeroMichelle Torres
 
Rubrica (primera entrega)
Rubrica (primera entrega)Rubrica (primera entrega)
Rubrica (primera entrega)Michelle Torres
 
Introducción a la programación en ambientes web
Introducción a la programación en ambientes webIntroducción a la programación en ambientes web
Introducción a la programación en ambientes webMichelle Torres
 
My sql para principiantes
My sql para principiantesMy sql para principiantes
My sql para principiantesMichelle Torres
 

Plus de Michelle Torres (16)

Prototipado rápido para web y mobile
Prototipado rápido para web y mobilePrototipado rápido para web y mobile
Prototipado rápido para web y mobile
 
Uso de Puerto paralelo en C
Uso de Puerto paralelo en CUso de Puerto paralelo en C
Uso de Puerto paralelo en C
 
Arreglos en PHP
Arreglos en PHPArreglos en PHP
Arreglos en PHP
 
Material de administración y auditoría de la función informática
Material de administración y auditoría de la función informáticaMaterial de administración y auditoría de la función informática
Material de administración y auditoría de la función informática
 
Cpu12 Reference Manual
Cpu12 Reference ManualCpu12 Reference Manual
Cpu12 Reference Manual
 
Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2
 
Taller de programación de sistemas. Descripción de práctica 1
Taller de programación de sistemas. Descripción de práctica 1Taller de programación de sistemas. Descripción de práctica 1
Taller de programación de sistemas. Descripción de práctica 1
 
Modos de direccionamiento para el HC12 de motorola
Modos de direccionamiento para el HC12 de motorolaModos de direccionamiento para el HC12 de motorola
Modos de direccionamiento para el HC12 de motorola
 
Programación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVAProgramación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVA
 
Recordando Java desde Cero
Recordando Java desde CeroRecordando Java desde Cero
Recordando Java desde Cero
 
Rubrica (primera entrega)
Rubrica (primera entrega)Rubrica (primera entrega)
Rubrica (primera entrega)
 
Cv resumido conaic
Cv resumido conaicCv resumido conaic
Cv resumido conaic
 
Introducción a la programación en ambientes web
Introducción a la programación en ambientes webIntroducción a la programación en ambientes web
Introducción a la programación en ambientes web
 
Servidores web
Servidores webServidores web
Servidores web
 
XHTML y CSS
XHTML y CSSXHTML y CSS
XHTML y CSS
 
My sql para principiantes
My sql para principiantesMy sql para principiantes
My sql para principiantes
 

Dernier

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 

Dernier (10)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

Manejo de archivos en JAVA

  • 1. TALLER DE PROGRAMACIÓN DE SISTEMAS Manejo de archivos Esencial para TODO el semestre Lic. Nancy Michelle Torres Villanueva 1
  • 2. TALLER DE PROGRAMACIÓN DE SISTEMAS Clases para IO Object RandomAccessFile File InputStream OutputStream Reader Writer PrintWriter BufferedReader BufferedWriter FileInputStream FileOutputStream FilterInputStream InputStreamReader FilterOutputStream OutputStreamReader FileReader DataInputStream DataOutputStream FileWriter BufferedInputStream BufferedOutputStream Lic. Nancy Michelle Torres Villanueva 2
  • 3. TALLER DE PROGRAMACIÓN DE SISTEMAS Clases para flujos de entrada Se utilizan para leer datos de una fuente de entrada (archivo, cadena o memoria) Flujo de bytes: InputStream, BufferedInputStream, DataInputStream, FileInputStream Flujo de caracteres: Reader, BufferReader, FileReader Lic. Nancy Michelle Torres Villanueva 3
  • 4. TALLER DE PROGRAMACIÓN DE SISTEMAS Clases para flujo de salida Son las homólogas a las clases de flujo de entrada y se utilizan para enviar flujos de datos a dispositivos de salida Flujo de bytes: OutputStream, PrintStream, BufferedOutputStream, DataOutputStream y FileOutputStream Flujo de caracteres : Writer, PrintWriter, FileWriter Lic. Nancy Michelle Torres Villanueva 4
  • 5. TALLER DE PROGRAMACIÓN DE SISTEMAS Clases de Archivo File y RandomAccesFile (mayor control sobre los archivos) Lic. Nancy Michelle Torres Villanueva 5
  • 6. TALLER DE PROGRAMACIÓN DE SISTEMAS La clase File ● La clase java.io.File permite obtener la información de las propiedades de un archivo. No es posible escribir o leer el contenido de un archivo, pero es útil para determinar el estado del mismo (p.e. si es un archivo o directorio). La forma general de construcción es: File obj = new File(ruta_del_archivo); ● Si el archivo no existe, aún así el objeto se construye. Lic. Nancy Michelle Torres Villanueva 6
  • 7. TALLER DE PROGRAMACIÓN DE SISTEMAS La clase RandomAccessFile ● Los archivos de acceso aleatorio se caracterizan porque es posible mover el apuntador de archivo a cualquier posición dentro del mismo y efectuar operaciones de escritura y lectura a la vez. La forma general de construcción es: RandomAccessFile arch = new RandomAccessFile(String nombre, String modo); RandomAccessFile arch = new RandomAccessFile(File obj, String modo); Lic. Nancy Michelle Torres Villanueva 7
  • 8. TALLER DE PROGRAMACIÓN DE SISTEMAS Flujos de archivos ● Otra forma de manipulación de archivos es tratándolos como flujos continuos de bytes. Cada archivo entonces sería una cinta con la secuencia de información para un archivo dado. ● A diferencia del acceso aleatorio, en éstos se presenta un acceso secuencial. Al inicio, el puntero de archivo se coloca en el primer byte y tendrá que ir consumiendo bytes para colocarse en los siguientes bytes hasta llegar al final. ● Lic. Nancy Michelle Torres Villanueva 8
  • 9. TALLER DE PROGRAMACIÓN DE SISTEMAS ... Flujos de archivos ● Si se desea leer desde el principio el archivo se tendrá que “rebobinar” la cinta y volverlo a leer. ● La clase InputStream es el flujo de entrada, mientras que OutputStream lo es para salida. Java ofrece subclases de estas clases base que especializan la interpretación de los bloques de bytes. Por ejemplo, FileInputStream asocia un archivo como un flujo de entrada, mientras que FileOutputStream trata a un archivo de escritura como un flujo de salida. Lic. Nancy Michelle Torres Villanueva 9
  • 10. TALLER DE PROGRAMACIÓN DE SISTEMAS ... Flujos de archivos ● Los métodos clásicos son read() y write(), respectivamente Lic. Nancy Michelle Torres Villanueva 10
  • 11. TALLER DE PROGRAMACIÓN DE SISTEMAS Flujos de objetos ● Es posible escribir y leer objetos de un flujo de cualquier clase. Las clases ObjectInputStream y ObjectOutputStream ofrecen la posibilidad de escribir tanto datos primitivos y objetos. ● Lo interesante de estas clases es que nos permiten “guardar” permanentemente el estado de un objeto y posteriormente recuperarlo. Por ejemplo, una ventana pudiera ser guardada en archivo y luego, restaurarla. Lic. Nancy Michelle Torres Villanueva 11
  • 12. TALLER DE PROGRAMACIÓN DE SISTEMAS ... Flujos de objetos ● Veamos la “magia” de esta clase. Por principio de cuentas, la serialización es el proceso de transferir los bytes correspondientes a un objeto a través de un flujo. Este proceso garantiza que el objeto se transmite completamente (de allí su nombre). ● Un objeto Java serializable es uno cuya clase implementa la interface Serializable. Esta interface no posee métodos, solo indica a la máquina virtual que ese objeto puede transmitirse por un flujo. ● Lic. Nancy Michelle Torres Villanueva 12
  • 13. TALLER DE PROGRAMACIÓN DE SISTEMAS ... Flujos de objetos ● La forma genérica de un objeto serializable es: import java.io.*; public class NomClase implements Serializable { //Código clase } Lic. Nancy Michelle Torres Villanueva 13
  • 14. TALLER DE PROGRAMACIÓN DE SISTEMAS Actividad ● Hagamos un pequeño programa que construya un objeto y lo guarde en archivo. Otro programa leerá el archivo y le “volverá a dar vida” al objeto. Lic. Nancy Michelle Torres Villanueva 14
  • 15. TALLER DE PROGRAMACIÓN DE SISTEMAS La clase BufferedReader ● Almacenamiento temporal en un buffer, para no actuar directamente sobre el stream. ● Igual que los streams de bytes se deben cerrar explícitamente para liberar sus recursos asociados (close). BufferedReader in = new BufferedReader(new FileReader(new File(ruta)); ● Para leer se utliza readLine() Lic. Nancy Michelle Torres Villanueva 15
  • 16. TALLER DE PROGRAMACIÓN DE SISTEMAS La clase BufferedWriter ● Para la escritura solo cambia el método BufferedWriter out = new BufferedWriter(new FileWriter(new File(ruta)); ● Para escribir se utiliza write() Lic. Nancy Michelle Torres Villanueva 16
  • 17. TALLER DE PROGRAMACIÓN DE SISTEMAS Actividad ● Generar un programa que lea un archivo, mientras lee cada renglon, deberá mostrarlo con un contador en pantalla y deberá detenerse al encontrar la palabra END. Lic. Nancy Michelle Torres Villanueva 17
  • 18. TALLER DE PROGRAMACIÓN DE SISTEMAS Tarea ● Investigar las diferencias entre las clases para lectura de archivos y evaluar la mas conveniente para las prácticas de este semestre. ● Lic. Nancy Michelle Torres Villanueva 18