El lenguaje de programación Java

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 13 Ing. Ronald Criollo.
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.
Ayudantía Pre-Actividad 5 Multimedios. Ayudantía Pre-Actividad 5 (1) creación de varias clases, y composición (2) manejo de threads (3) manejo de excepciones.
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. 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.
Curso de Java Capitulo 6: Cadenas y Arrays Profesor:
EXCEPCIONES UNIDAD 5.
Programación Interactiva Manejo de Excepciones
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
Uso de variables de tipo referencia
Unidad 1. Manejo de ficheros
Orientación a Objetos con Java SE
Archivos Implementar un método que lea una secuencia de números enteros de un archivo y compute la cantidad de elementos leídos.
Excepciones Las excepciones son señales (en forma de objeto) que se generan en ejecución en casos de errores, para que puedan ser gestionadas en el programa.
Capitulo 4 Excepciones.
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD LATINA (UNILA)
Algoritmo y Estructura de Datos I
PROGRAMACIÓN ORIENTADA A OBJETOS
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.
Método en Java.
Manejo de excepciones en Java
Curso Programación en Java
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación EXCEPCIONES EN JAVA Diciembre de 2008.
Unidad I Java y C++ : Similitudes y diferencias
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
Colecciones.
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.
Manejo de Excepciones Agustín J. González ELO329.
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.
Tema 14: java.lang Antonio J. Sierra. Índice 1. Introducción. 2. Gestión de cadenas. –String –StringBuffer 3. Clases para los tipos simples. –Number –Envolventes.
Framework Class Library (FCL) Dr. Diego Lz. de Ipiña Gz. de Artaza
Prof. Mayra M. Méndez Anota.  Herramientas  Características  Convenciones  Estructura de una clase  Sintaxis de: métodos, atributos, constructores.
Tema 11: Excepciones Antonio J. Sierra.
Introducción a Java (2ª parte) - excepciones, colecciones, i/o, … -
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 Orientada a Objetos
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.
USO DE EXCEPCIONES EN JAVA LSC. Natalia Rodríguez Castellón.
Programación orientada a objetos Capítulo 12 Manejo de errores.
1 Unidad IV Archivos en Java y C++ M.C. Juan Carlos Olivares Rojas.
Unidad III Manejo de Excepciones en Java y C++
Excepciones Unidad 5.
1 Manejo de Excepciones y otros Agustín J. González ELO-329.
PAQUETES Un paquete es un conjunto de clases, interfaces y subpaquetes relacionados. El paquete define un ámbito de visibilidad: los miembros que no tienen.
Programación orientada a objetos. Existen 3 niveles de visibilidad: ◦ public: significa que los atributos de una clase pueden ser accedidas desde fuera.
ELO3291 Manejo de Excepciones Lectura sugerida de texto en linea: Eckel, Bruce. Thinking About C++, 2nd Edition, Prentice-Hall, Gratis en
Programación avanzada en Java Miguel Ángel Corella 26 de Septiembre de 2005.
Agustín J. González ELO-329
Las clases FileReader y BufferedReader brindan servicios para manejar archivos. Las instrucciones: Archivos FileReader fr = new FileReader (ruta); BufferedReader.
Manejo de Ficheros en JAVA
ELO3291 Manejo de Excepciones Agustín J. González ELO329.
Ejemplos: float R[10] = {2, 32, 4.6, 2, 1, 0.5, 3, 8, 0, 12}; float S[] = {2, 32, 4.6, 2, 1, 0.5, 3, 8, 0, 12}; int N[] = {1, 2, 3, 6}; int M[][3] = {
1 Unidad II Aplicaciones con Arreglos en Java y C++ M.C. Juan Carlos Olivares Rojas.
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
MANEJO DE EXCEPCIONES. 21/11/2005 E.T.S de Ingenieros de Telecomunicacion.2 Índice ¿Qué es una excepción? Tipos de situaciones. Manejo de excepciones.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Excepciones Diseño y manejo de excepciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 5 Versión
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Manejo de Excepciones Agustín J. González ELO329 ELO329.
Diseño y Programación Orientada a Objetos
Manejo de Excepciones Agustín J. González ELO329 ELO329.
Transcripción de la presentación:

El lenguaje de programación Java Control de errores Manejo de cadenas java.lang.String java.lang.StringBuffer java.util.StringTokenizer Entrada/Salida (java.io) Streams de datos (DataInputStream/DataOutputStream) Streams de caracteres (Reader/Writer) Entrada y salida estándar (System.in/System.out) Manejo de ficheros: File, RandomAccessFile El lenguaje de programación Java

El lenguaje de programación Java Control de errores Cuando se produce un error en un método se genera una excepción. Estructura: try{ //bloque que puede provocar un error }catch (tipoExcepcion identificador){ /* acciones a realizar si se produce el error */ }finally{ // acciones a realizar haya o no error } El lenguaje de programación Java

El lenguaje de programación Java Cadenas de texto String es solo-lectura mientras que StringBuffer es mutable Métodos básicos de la clase String: public String() //constructor de un obj de valor “” public String(String value) //constructor de obj copia de value public int length() //longitud public char charAt(int index) //0  index  length-1 (si se accede a cualquier otra posición lanza IndexOutOfBoundsException) Ejemplo: static int numCaracteresEntre (String str, char car){ int primeraPos = str.indexOf(car); if (primeraPos<0) return -1; //no existe el car en str int ultimaPos = str.lastIndexOf(car); return ultimaPos - primeraPos -1; } El lenguaje de programación Java

El lenguaje de programación Java Clase String Comparación: boolean equals: compara contenido de los strings. boolean equalsIgnoreCase: no distingue entre mayúsculas y minúsculas. int compareTo: útil para ordenar Strings. Modificación: String replace (char oldChar, char newChar) String toLowerCase() String toUpperCase() String trim(): quitar espacios en blanco Otros: boolean startsWith (String prefix) boolean endWith (String suffix) String substring (int beginIndex) String substring (int beginIndex, int endIndex) El lenguaje de programación Java

El lenguaje de programación Java Ejemplo: String Ejemplo2: public static String subCadena (String str, char ini, char fin){ int posInicial = str.indexOf(ini); int posFinal = str.lastIndexOf(fin); if (posInicial==-1) return null; //no existe ini en str else if (posFinal == -1) return str.substring(posInicial); else return str.substring(posInicial, posFinal+1); } El lenguaje de programación Java

El lenguaje de programación Java Clase StringBuffer StringBuffer permite modificar el String en lugar de crear uno nuevo en cada paso intermedio. Métodos similares e igual nombre que String pero son independientes. Constructores: StringBuffer() StringBuffer(String) Métodos principales: setCharAt(int, char) StringBuffer insert (int offset, valor) StringBuffer append (valor) donde valor puede ser: int, char, boolean, float, double, long Object String char [ ] str El lenguaje de programación Java

Ejemplo: StringBuffer public static String escribirRaiz (int i){ StringBuffer buf = new StringBuffer(); buf.append(“sqrt(“).append(i).append(‘)’); buf.append(“ = “).append(Math.sqrt(i)); return buf.toString(); } char int double String Ejemplo4: public static StringBuffer insertaFecha (StringBuffer buf)){ String hoy = new java.util.Date().toString(); buf.ensureCapacity(buf.length()+hoy.length()+2); buf.insert(0,hoy).insert(hoy.length()”: “); return buf; } El lenguaje de programación Java

Ejemplo String y StringBuffer Ejercicio: Escribir un método que tome como entrada un string que representa un número y devuelva el mismo numero divido por puntos cada tres dígitos. Esto es, para la entrada “12345” la salida sería “12.345” public static String ponerPuntos(String numero){ int size = numero.length(); int numptos= (size -1)/3; if (numptos==0) return numero; else { StringBuffer buf = new StringBuffer(numero); for (int i=1;i<=numptos;i++) buf.insert((size-3*i),'.'); return buf.toString(); } El lenguaje de programación Java

Clase StringTokenizer Utilizado para dividir una cadena según unos delimitadores Constructores habituales: StringTokenizer(String cadena) Utiliza los delimitadores por defecto: " \t\n\r\f“ StringTokenizer(String cadena, String delimitadores) Métodos para iterar: boolean hasMoreTokens() String nextToken() El lenguaje de programación Java

Ejemplo StringTokenizer StringTokenizer st = new StringTokenizer(“esto es una prueba"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } Imprime la siguiente salida: esto es una prueba El lenguaje de programación Java

Entrada/Salida. Paquete java.io Define la entrada/salida en términos de streams Un stream es una secuencia ordenada de datos Tienen: una fuente = streams de entrada o un destino = streams de salida El paquete java.io tiene dos partes principales: Stream de caracteres (caracteres Unicode de 16 bits) Stream de bytes (8 bits) El lenguaje de programación Java

Entrada/Salida. Paquete java.io E/S puede estar basada: En texto: streams de caracteres legibles Ejemplo: el código fuente de un programa En datos: streams de datos binarios Ejemplo: patrón de bits de una imagen Los streams de caracteres se utilizan en la E/S basada en texto. Se denominan lectores (reader) y escritores (writer) Los streams de bytes se utilizan en la E/S basada en datos. Se denominan streams de entrada y streams de salida El lenguaje de programación Java

Clases principales de java.io Clases de flujo 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 Clases de 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 Clases de archivo: File y RandomAccesFile (mayor control sobre los archivos)

Jerarquía de clases de java.io (parcial) Object RandomAccessFile File InputStream OutputStream Reader Writer PrintWriter BufferedReader BufferedWriter FileInputStream FileOutputStream FilterInputStream InputStreamReader FilterOutputStream OutputStreamReader FileReader DataInputStream DataOutputStream FileWriter BufferedInputStream BufferedOutputStream

El lenguaje de programación Java InputStream Método Descripción read() Lee el siguiente byte del flujo de entrada y lo devuelve como un entero. Cuando alcanza el final del flujo de datos, devuelve -1. read(byte b[]) Lee múltiples bytes y los almacena en la matriz b. Devuelve el número de bytes leídos o -1 cuando se alcanza el final del flujo de datos. read(byte b[], int off, int long) Lee hasta len bytes de datos del flujo de entrada, empezando desde la posición indicada por el desplazamiento off, y los almacena en una matriz. available() Devuelve el número de bytes que se pueden leer de un flujo de entrada sin que se produzca un bloqueo por causa de una llamada a otro método que utiliza el mismo flujo de entrada. skip(long n) Omite la lectura de n bytes de datos de un flujo de entrada y los descarta. close() Cierra un flujo de entrada y libera los recursos del sistema utilizados por el flujo de datos. EOF El lenguaje de programación Java

El lenguaje de programación Java OutputStream Método Descripción write(int b) Escribe b en un flujo de datos de salida. write(byte b[]) Escribe la matriz b en un flujo de datos de salida. write(byte b[], int off, int long) Escribe len bytes de la matriz de bytes en el flujo de datos de salida, empezando en la posición dada por el desplazamiento off flush() Vacía el flujo de datos y fuerza la salida de cualquier dato almacenado en el búfer. close() Cierra el flujo de datos de salida y libera cualquier recurso del sistema asociado con él. El lenguaje de programación Java

Streams sobre Ficheros FileInputStream: muy similar a la clase InputStream, sólo que está diseñada para leer archivos. FileInputStream(String name) FileInputStream(File name) FileOutputStream: muy similar a la clase OutputStream, sólo que está diseñada para escribir en archivos. FileOutputStream(String name) FileOutputStream(String name, boolean append) Si append==true queremos añadir al final del fichero FileOutputStream(File name) El lenguaje de programación Java

Ejemplo: streams sobre ficheros import java.io.*; public class Copia { public static void main(String args[]) { FileInputStream origen = null; FileOutputStream destino = null; try { origen = new FileInputStream(args[0]); destino = new FileOutputStream(args[1],true); //añadir int i = origen.read(); while (i != -1) { // mientras not EOF destino.write(i); i = origen.read(); } origen.close(); destino.close(); }catch (IOException e) { System.out.println("Error de ficheros”); El lenguaje de programación Java

El lenguaje de programación Java Reader y Writer Dar soporte Unicode en todas las operaciones de E/S. En ocasiones hay que combinar streams de caracteres y de bytes: InputStreamReader: convierte un InputStream en un Reader OutputStreamWriter: convierte un OutputStream en un Writer Casi todas las clases de la jerarquía de streams de bytes tienen su correspondiente clase Reader o Writer con interfaces casi idénticas. BufferedReader y BufferedWriter: 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). El lenguaje de programación Java

El lenguaje de programación Java Escribir en fichero PrintWriter print(…) println(…) write(String) write(char[]) FileOutputStream write(int) write(byte[]) Fichero bytes FileOutPutStream fos = new FileOutputStream(“fichero.txt”); PrintWriter pr = new PrintWriter(fos); … pr.println(“Escribimos texto”); El lenguaje de programación Java

Ejemplo: Escribir en un fichero public class EscribirFichero { public static void main(String[] args) { try{ FileOutputStream fos = new FileOutputStream("salida.txt"); PrintWriter pw = new PrintWriter(fos); pw.println("Imprimimos una cadena y un entero " + 5); pw.flush(); pw.close(); fos.close(); }catch (FileNotFoundException e){ } catch (IOException e2){ } } NOTA: El flujo de salida se convierte en un PrintWriter para hacerlo legible como un archivo de texto normal. El lenguaje de programación Java

El lenguaje de programación Java Escribir en fichero (2) PrintWriter print(…) println(…) write(String) write(char[]) FileWriter write(int) write(char[]) write(String) Fichero caract. FileWriter fw = new FileWriter(“fichero.txt”); PrintWriter pr = new PrintWriter(fos); … pr.println(“Escribimos texto”); El lenguaje de programación Java

El lenguaje de programación Java Lectura de líneas Fichero BufferedReader readLine() InputStreamReader int read() read(char[]) InputStream read() read(byte[])  bytes FileInputStream fis = new FileInputStream(“fichero.txt”); InputStreamReader isr = new InputStreamReader(fis); BufferedReader buffer = new BufferedReader(isr); … String linea = buffer.readLine(); El lenguaje de programación Java

Ejemplo: Lector de fichero public class LectorFichero { public static void main(String args[]) { byte [] buffer = new byte[80]; try { FileInputStream fichero = new FileInputStream("Leeme.txt"); int i = fichero.read(buffer); String s = new String(buffer); System.out.println(s); }catch(FileNotFoundException e) { }catch(IOException e) { } NOTA: Podemos cambiar FileInputStream por FileReader en cuyo caso el buffer sería un char[]. El lenguaje de programación Java

El lenguaje de programación Java Leer de fichero BufferedReader readLine() FileReader int read() read(char[]) Fichero carac. FileReader fr = new FileReader(“fichero.txt”); BufferedReader buffer = new BufferedReader(fr); … String linea = buffer.readLine(); El lenguaje de programación Java

Clases DataInputStream y DataOutputStream Permiten transmitir tipos primitivos por un stream. Lectura Escritura Tipo readBoolean writeBoolean boolean readChar writeChar char readByte writeByte byte readShort writeShort short readInt writeInt int readLong writeLong long readFloat writeFloat float readDouble writeDouble double readUTF writeUTF String El lenguaje de programación Java

Escritura en modo datos DataOutputStream writeBoolean writeChar writeByte writeShort writeInt writeLong writeFloat writeDouble writeUTF FileOutputStream Fichero bytes write(int) write(byte[]) FileOutputStream fos = new FileOutputStream("salida.dat"); DataOutputStream dos = new DataOutputStream(fos); dos.writeInt(5); El lenguaje de programación Java

El lenguaje de programación Java Lectura en modo datos DataInputStream readBoolean readChar readByte readShort readInt readLong readFloat readDouble readUTF FileInputStream Fichero bytes int read() read(byte[]) FileInputStream fis = new FileInputStream("salida.dat"); DataInputStream dis = new DataInputStream(fis); int entero = dis.readInt(); El lenguaje de programación Java

Entrada/Salida estándar Stream de salida estándar: System.out Objeto PrintStream (es un tipo de OutputStream) Métodos de escritura print(valor) y println(valor) para los siguientes tipos: Stream de entrada estándar: System.in Objeto InputStream Salida de error “estándar”: System.err Objeto PrintStream Mostrar mensajes de error o cualquier otra información que requiera la atención inmediata del usuario char int float Object boolean char[] long double String El lenguaje de programación Java

Ejemplo lectura del teclado BufferedReader readLine() InputStreamReader int read() read(char[])  System.in (InputStream) bytes read() read(byte[]) BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in)); String entrada = teclado.readLine(); El lenguaje de programación Java

El lenguaje de programación Java Clase File Representa realmente una vía de acceso, no necesariamente un archivo. Independiente de la plataforma: File.separator Constructores: File (String viaAcceso) File (String directorio, String fichero) File (File directorio, String fichero) Métodos para crear y borrar archivos o directorios, cambiar el nombre de un archivo, leer el nombre del directorio, consultar si un nombre representa un fichero o directorio, listar el contenido de un directorio (String [] list()), ... El lenguaje de programación Java

El lenguaje de programación Java Ejemplo: File class DatosArchivo{ public static void main (String [] args){ File f = new File(args[0]); System.out.println( “Ruta absoluta: “ + f.getAbsolutePath()+ “\n Puede leer: “ + f.canRead()+ “\n Puede escribir: “ + f.canWrite()+ “\n Nombre del fichero: “ + f.getName()+ “\n Padre del fichero: “ + f.getParent()+ “\n Ruta del fichero: “ + f.getPath()+ “\n Longitud: “ + f.length()+ “\n Ultima modificación: “ + f.lastModified()); if (f.isFile()) System.out.println(“Es un archivo”); else if (f.isDirectory()) System.out.println(“Es un directorio”); } El lenguaje de programación Java

Ficheros de acceso directo. RandomAccessFile Tiene todas las propiedades de las clases DataInputStream y DataOutputStream lectura y escritura como tipos de datos primitivos Constructores: RandomAccessFile(File fichero, String modo) RandomAccessFile(String fichero, String modo) donde modo = “r” (lectura) o “rw” (lectura-escritura) Métodos: void seek(long posicion): establece posición actual del puntero. long getFilePointer(): devuelve la posición actual (en bytes). int skipBytes(int desplazamiento): mueve el puntero el nº de bytes del parámetro long length(): longitud del fichero en bytes El lenguaje de programación Java

El lenguaje de programación Java Ejemplo: Leemos por el teclado el nombre de un fichero y el valor real que vamos a almacenar en el mismo. class Ficheros{ public static void main(String[] args) { try{ BufferedReader teclado = new BufferedReader( new InputStreamReader(System.in)); RandomAccessFile salida = new RandomAccessFile( teclado.readLine(), “rw”); salida.seek(salida.length()); //vamos al final del fichero System.out.print(“Introduzca un valor real: ”); double valor = Double.parseDouble(teclado.readLine()); salida.writeDouble(valor); salida.close(); }catch (IOException e){ System.out.println(“Error de E/S”); } El lenguaje de programación Java