SlideShare une entreprise Scribd logo
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

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
hector_h30
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datos
ralbarracin
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
josecuartas
 
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
yoiner santiago
 

Tendances (20)

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
 
Metodologiasad 1
Metodologiasad 1Metodologiasad 1
Metodologiasad 1
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de uso
 
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
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Sql
SqlSql
Sql
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
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
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datos
 
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
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación 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
 
Modelos de datos
Modelos de datosModelos de datos
Modelos de datos
 
OOSE
OOSEOOSE
OOSE
 
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 Relacional (Base de Datos)
Modelo Relacional (Base de Datos)Modelo Relacional (Base de Datos)
Modelo Relacional (Base de Datos)
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 
Tipos De Datos Abstractos Colas
Tipos De Datos Abstractos ColasTipos De Datos Abstractos Colas
Tipos De Datos Abstractos Colas
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql command
 

Similaire à Manejo de archivos en JAVA

PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
Darwin Durand
 
Manejo+de+archivos+en+java
Manejo+de+archivos+en+javaManejo+de+archivos+en+java
Manejo+de+archivos+en+java
Whaleejaa Wha
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en java
Whaleejaa Wha
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en java
Whaleejaa Wha
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en java
MaiirOn Gaitan
 

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

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

editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
ssusere34b451
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
encinasm992
 

Dernier (20)

Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundaria
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 

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