Programación Orientada a Objetos

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 13 Ing. Ronald Criollo.
Advertisements

Curso de java básico (scjp)
Introducción a C#.
Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
Introducción Características de la nueva API E/S antes de Java 1.4 ¿Por qué NIO? E/S orientada a bloques El patrón Reactor Canales y Buffers Lectura y.
Archivos de Texto. Introducción Los archivos son una secuencia de bits que se guarda en el disco duro. La ventaja de utilizar archivos es que los datos.
Archivos Binarios Usando Serializable. Introducción Utilizar archivos binarios nos ayuda a guardar y leer más fácilmente los datos de archivos. Pero como.
Archivos Binarios. Introducción En clase ya vimos el uso de archivos de texto en Java, pero el uso de archivos es mucho más poderoso que eso, al utilizar.
CAPÍTULO 10 Trabajar con Ficheros.
EXCEPCIONES UNIDAD 5.
Streams de datos y archivos
ENTRADA/SALIDA ENTRADA/SALIDA DESDE O HACIA UN PROCESO
Unidad 1. Manejo de ficheros
Modularidad Estructura de datos.
Archivos Implementar un método que lea una secuencia de números enteros de un archivo y compute la cantidad de elementos leídos.
1 Entrada/Salida en Java Jaime Ramírez, Ángel Lucas González DLSIIS. Facultad de Informática Universidad Politécnica de Madrid.
1.2 Sintaxis del lenguaje Java.
2.4 Construcción de un TAD a partir de otro.
UNIVERSIDAD LATINA (UNILA)
RMI (Remote Method Invocation)
PROGRAMACIÓN ORIENTADA A OBJETOS
El Socket Un socket es un extremo de un link de comunicación entre dos programas que corren en una red. El socket esta asociado (amarrado, bound) a ub.
Archivos Contenido: Archivos de Texto Archivos de Acceso Aleatorio
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Manejo de excepciones en Java
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Curso Programación en Java
Creación de Aplicaciones
En Java las estructuras de repetición son las mismas que en C/C++.
Unidad I Java y C++ : Similitudes y diferencias
Input – Scanner y Cajas de diálogo
Igor Santos Grueiro. Ahora tenemos datos y datos …
1 Streams en Java Agustín J. González ELO Generalidades Un Stream es simplemente una fuente o destino de bytes. Los streams más comunes son los.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter N - 1 Capitulo 12 Archivos de Ingreso y Salida.
Archivos y Búsqueda Secuencial
Sockets en Java. Sockets ● Para programar aplicaciones en red en Java se utilizan los Sockets. ● Un socket permite establecer y manejar una conexión entre.
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
El lenguaje de programación Java
JAVA J.A.C..
1 Programación Interactiva Archivos Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
7. Interfaces Herencia múltiple Interfaces Comparable y Comparator
Archivos.
Framework Class Library (FCL) Dr. Diego Lz. de Ipiña Gz. de Artaza
1 Persistencia en Java Agustín J. González ELO-329.
Entrada y Salida Java. Clase File La clase File proporciona mucha informacion relacionada con archivos y con la obtencion de informacion basica sobre.
Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Entrada / Salida. Java adopta de Unix el concepto de stream Un stream es un flujo de datos (secuencia de bytes) que va de una fuente a un destino. Desde.
Streams. / En casi todo programa se necesita traer o enviar información a una fuente externa. / Dicha información puede estar en un archivo en el disco.
El lenguaje de programación Java
1 Unidad IV Archivos en Java y C++ M.C. Juan Carlos Olivares Rojas.
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila.
Persistencia. Persistencia significa trascender en el tiempo y/o en el espacio Un ambiente orientado a objetos debe permitir que los objetos se persistan,
PAQUETES Un paquete es un conjunto de clases, interfaces y subpaquetes relacionados. El paquete define un ámbito de visibilidad: los miembros que no tienen.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
1 Streams y Persistencia en Java Agustín J. González ELO-329.
Agustín J. González ELO-329
Manejo de Ficheros en JAVA
Manejo de errores: Excepciones en Java ELO329: Diseño y Programación Orientados a Objetos.
INGENIERIA EN SISTEMAS COMPUTACIONALES ASIGNATURA: PROGRAMACION ORIENTADA A OBJETOS ALUMNO: JAVIER MARTINEZ MARTINEZ.
Hilos y Multihilos Un thread (hilo, flujo de control del programa) representa un proceso individual ejecutándose en un sistema. A veces se les llama.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
Instituto Tecnológico Superior de Libres Ingeniería en Sistemas Computacionales Segundo semestre Materia: Programación Orientada a Objetos Asesora: Ing.
Estrategias de Persistencia. Program start Program execution Time Program start Program end Object creation Object edition Program end Object Lifetime.
 DIANA GARCIA VALERIO. CONCEPTO DE FLUJO DE JAVA:  La información que necesita un programa para su función se obtiene mediante una entrada de datos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Programación Orientada a Objetos
Transcripción de la presentación:

Programación Orientada a Objetos Fast Track to Java Unit 1: Overview and Positioning Programación Orientada a Objetos Anexo 5 Streams Universidad de Chile Departamento de Ciencias de la Computación

Temario Streams El package java.io Streams de bytes y de caracteres Streams de bajo y alto nivel Leyendo y escribiendo Sockets

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning Streams Los Streams son interfaces que permiten ver de una manera común los diferentes elementos de entrada / salida (archivos, teclado/pantalla, sockets, etc.) Un stream de entrada: Un stream de salida:

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning El Package java.io Las clases de entrada / salida del paquete java.io: ocultan la complejidad de las operaciones de bajo nivel aíslan al programador de los detalles específicos del sistema operativo proveen una manera consistente de representar la entrada / salida

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning El Package java.io Las clases de streams del paquete java.io se encuentran divididas en 4 jerarquías de clases, dependiendo de si son de entrada o salida, y del tipo de datos sobre el que operan (bytes o caracteres) Lectura Escritura Operan sobre bytes InputStream OutputStream Operan sobre caracteres Reader Writer

Streams Byte v/s Character Fast Track to Java Unit 1: Overview and Positioning Streams Byte v/s Character Streams de Bytes Métodos operan sobre (arreglos de) bytes Contiene bytes de 8-bit Implementado por clases InputStream y OutputStream No manejan buffers Streams de Caracteres Métodos operan sobre (arreglos de) caracteres Contiene caracteres Unicode de 16-bit Implementado por clases Reader y Writer Manejan buffers

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning Reader y InputStream Clases abstractas para leer caracteres y bytes Reader permite leer streams de caracteres InputStream permite leer streams de bytes Métodos básicos Reader: int read() int read(char[] cbuf) abstract int read(char[] cbuf, int off, int len) Métodos básicos InputStream: abstract int read() int read(byte[] bbuf) int read(byte[] bbuf, int off, int len)

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning Writer y OutputStream Clases abstractas para escribir caracteres y bytes Writer permite escribir streams de caracteres OutputStream permite escribir streams de bytes Métodos básicos Writer: void write(int c) void write({char[]|String} cbuf) abstract void write({char[]|String} cbuf, int off, int len) Métodos básicos OutputStream: abstract void write(int b) void write(byte[] bbuf) void write(byte[] bbuf, int off, int len)

Streams de Caracteres

Streams de Bytes

Streams Conectados a Datos Fast Track to Java Unit 1: Overview and Positioning Streams Conectados a Datos Streams conectados directamente a fuentes o destinos de información (en gris en las jerarquías anteriores) Clases Fuente o destino de datos FileReader, FileWriter, FileInputStream, FileOutputStream Archivos PipedReader, PipedWriter, PipiedInputStream, PipedOutputStream Pipes: un thread lee en un PipedReader lo que otro escribe en un PipedWriter CharArrayReader, CharArrayWriter Arreglos de caracteres StringReader, StringWriter Strings ByteArrayInputStream, ByteArrayOutputStream Arreglos de bytes

Encadenamiento de Streams Fast Track to Java Unit 1: Overview and Positioning Encadenamiento de Streams Streams que operan sobre otros streams, agregando funcionalidad, convirtiendo información, etc. (en blanco en las jerarquías anteriores) Clases Descripción FilterReader, FilterWriter, FilterInputStream, FilterOutputStream Clases base para la implementación del patrón de diseño Decorator; los métodos simplemente delegan los requerimientos en el stram “conectado”. BufferedReader, BufferedWriter, BufferedInputStream, BufferedOutputStream Manejan buffers. BufferedReader agrega además un método readLine(). LineNumberReader, LineNumberInputStream Agregan el método getLineNumber(). InputStreamReader, OutputStreamWriter Proveen conversión entre bytes y caracteres. PushbackReader, PushbackInputStream Agregan métodos unread(). SequenceInputStream InputStream que lee desde una secuencia de objetos InputStream. PrintWriter, PrintStream Agregan métodos para escribir objetos formateadamente. DataInputStream, DataOutputStream Proveen métodos para leer y escribir tipos primitivos. ObjectInputStream, ObjectOutputStream Proveen manejo de serialización.

Copiando un Archivo import java.io.*; public class Copy { public static void main(String[] args) throws IOException { FileReader in = new FileReader("data.txt"); FileWriter out = new FileWriter("out.txt"); int c; while ((c = in.read()) != -1) { out.write(c); } in.close(); out.close();

Encadenando Streams Los streams están basados en el patrón de diseño Decorador, que permite agregar responsabilidades a los objetos de manera dinámica y transparente Las clases FilterReader, FilterWriter, FilterInputStream y FilterOutputStream son clases base para decoradores: Manejan la referencia al stream “encadenado”, y le delegan los requerimientos Los decoradores concretos agregan o modifican funcionalidad Los decoradores tienen la misma interfaz que los componentes “decorados”, de modo que para el cliente es transparente si está operando con un componente decorado o no

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning Leyendo de un Archivo El siguiente código permite leer por líneas de un archivo: FileReader fr = null; BufferedReader br = null; try { fr = new FileReader("/home/archivo.txt"); br = new BufferedReader(fr); String s; while ((s = br.readLine()) != null) { ... } } finally { if (fr != null) { fr.close();

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning Leyendo del Teclado El siguiente código permite leer por líneas lo que el usuario escribe en el teclado: InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); try { System.out.print("Ingrese su nombre: "); String name = br.readLine( ); System.out.print("Ingrese su dirección: "); String address = br.readLine( ); } catch (IOException e) { System.out.println("IOException"); }

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning PrintWriter Escribe texto y números en formato de texto, en métodos print() y println() El constructor de PrintWriter recibe como parámetro un objeto OutputStream, Writer, File, o String (el nombre de un archivo) FileWriter fw = new FileWriter("C:/dat/emp.dat"); PrintWriter pw = new PrintWriter(fw); String nombre = "Andrea Ramírez"; double sueldo = 1500000; pw.print(nombre); pw.print(""); pw.print(sueldo); pw.close(); fw.close();

Ejemplo: Encadenando Streams El siguiente ejemplo muestra cómo comprimir y encriptar información, escribiendo sobre un archivo: El siguiente código genera la estructura de objetos: FileOutputStream fos = new FileOutputStream("myfile.out"); CryptOutputStream cos = new CryptOutputStream(fos); GZIPOutputStream gos = new GZIPOutputStream(cos); Para escribir sobre los streams encadenados se invoca el método write() sobre el objeto más externo: gos.write('a');

Archivos de Acceso Directo Las clases vistas anteriormente implementan streams de acceso secuencial La clase RandomAccessFile implementa archivos de acceso directo, en modalidad lectura y escritura (no está conectada con el modelo de streams) Además de los métodos de lectura y escritura, provee los siguientes métodos adicionales int skipBytes(int n) void seek(long pos) long getFilePointer()

Excepciones El paquete java.io contiene un conjunto de excepciones, todas derivadas de IOException: EOFException FileNotFoundException InterruptedIOException IOException SecurityException

Clase File Provee una abstracción de los nombres del archivo o directorio en el sistema de archivos Provee métodos útiles para la manipulación de nombres de archivos getName() getPath() lastModified() mkdir() delete() list() exists() isFile() isDirectory()

Close Los streams ocupan recursos del sistema operativo Al terminar de usar un stream, hay que cerrarlo utilizando su método close() Al cerrar un archivo se realiza un flush()

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning Resumen El paquete java.io tiene dos jerarquías de streams: una para leer/escribir caracteres (clases Reader y Writer), otra para leer/escribir bytes (clases InputStream y OutputStream) Existen streams conectados directamente a fuentes y destinos de información, y streams que se encadenan a otros