Presentacin de PowerPoint - PowerPoint PPT Presentation

1 / 12
About This Presentation
Title:

Presentacin de PowerPoint

Description:

Excepciones y Ficheros. Julio, 2002. Errores en Tiempo de Compilaci n ... Las Excepciones son objetos que describen y permiten ... double x,y; try ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 13
Provided by: Anto262
Category:

less

Transcript and Presenter's Notes

Title: Presentacin de PowerPoint


1
Errores en Tiempo de Compilación y de
Ejecución. Excepciones y Ficheros
Antonio S. Cofiño Universidad de
Cantabria antonio.cofino_at_unican.es
Java
Internet
http//departamentos.unican.es/macc/asignaturas/ja
va
2
Excepciones. Sus tipos.
class Problemas public static void
main(String args) System.out.println("Hola\n"
) System.out.println(1/0) System.out.println
("Hola otra vez\n")
3
Tratamiento de Excepciones
  • Existen dos formas de responder a una excepción
  • Construir un manipulador de excepciones
  • El constructor tiene tres componentes básicas
  • 1. El bloque try agrupa las sentencias que
    pueden provocar una excepción
  • 2. El bloque o bloques catch manejador de la
    excepción
  • 3. El bloque finally sólo obligatorio cuando
    exista un bloque try sin su catch.
  • Declararla y dejar que el método llamador sea el
    encargado de tratarla
  • Si se quiere que un método declare excepciones
    pero que no responda a ellas con el/los
    correspondientes manipuladores, debe colocarse, a
    continuación del nombre del método y de la lista
    de sus argumentos, la palabra clave trhows
    seguida de las excepciones.
  • No confundir throws y throw, este último se
    utiliza para lanzar una excepción desde un
    método, una vez que la ha capturado, por lo que
    queda incluida en un catch.

4
Métodos de la clase Throwable.
  • fillInstackTrace( ) devuelve un objeto con los
    métodos en ejecución en el momento de lanzarse la
    excepción.
  • getMessage( ) devuelve el mensaje descriptivo
    almacenado en una excepción.
  • printStackTrace( ) muestra por consola un
    mensaje con la clase de excepción, el mensaje
    descriptivo de la misma y una lista con los
    métodos en ejecución en el momento de lanzarse la
    excepción.
  • printStackTrace( PrintStream ps) envía el
    mensaje anteriormente descrito al PrintStream que
    se le especifique como parámetro.
  • printStackTrace( PrintWriter pw) envía el
    mensaje anteriormente descrito al PrintWriter que
    se le especifique como parámetro.
  • toString( ) devuelve una cadena descriptora de
    la excepción.

5
Lectura de ficheros
Fichero binario
x1 y1 x2 y2 NaN NaN x1 y1 ...
6
Jerarquía de java.io Flujos de Entrada.
Una fuente de datos es cualquier objeto que puede
proveer informaciónun array de Java, un
fichero, teclado, etc.
  • La clase más general, con variedad de
    posibilidades es InputStream
  • Una clase especial para lectura de caracteres
    Unicode (16bits) Reader

InputStream


























































































































  • InputStream
  • FilterInputStream (InputStream in)
  • BufferedInputStream
  • DataInputStream
  • PushbackInputStream
  • ByteArrayInputStream
  • FileInputStream
  • ObjectInputStream
  • SequenceInputStream
  • Reader
  • BufferedReader (Reader  in)
  • LineNumberedReader
  • CharArrayReader
  • FilterReader
  • PushbackReader
  • InputStreamReader
  • FileReader
  • StringReader

DataInputStream
7
Ejemplo de Lectura de Ficheros
DataInputStream (BufferedInputStream
(FileInputStream)) DataInputStream
(FileInputStream)
BufferedReader (FileReader)
StringTokenizer(str,",")
8
Jerarquía de java.io Flujos de Salida.
  • Dos Clases para Flujos de Datos, con variedad de
    posibilidades InputStream y OutputStream
  • Dos Clases para caracteres Unicode (16bits) para
    soportar internacionalización Reader y Writer

9
Tratamiento de Excepciones en ficheros.
import java.io. class leefichero public
static void main (String args) int n0
double x,y try
DataInputStream dis disnew
DataInputStream(new FileInputStream("fronteras.bin
")) try
while (true)
xdis.readDouble()
ydis.readDouble()
System.out.println("( " x",
" y" )")
n
catch(EOFException e)
dis.close()
catch(IOException e)
e.printStackTrace() f
inally
System.out.println("Leidos "n" puntos")

10
Leyendo del teclado
  • System.in es un flujo orientado a bytes.
  • InputStreamReader es un puente entre estos y los
    flujos orientados a caracteres.
  • BufferedReader contiene el metodo readLine(), que
    nos permite leer una linea de texto.
  • FileReader y FileWriter son subclases de
    InputStreamReader y ambas admiten constructor
    String con el nombre de un fichero.

import java.io. class LeerTeclado public
static void main(String args) throws
IOException System.out.print("gt")
InputStreamReader is new
InputStreamReader(System.in) BufferedReader
fis new BufferedReader(is) String
inputLinefis.readLine() fis.close()
OutputStreamWriter os new
OutputStreamWriter(System.out) BufferedWriter
fos new BufferedWriter(os)
fos.write(inputLine,0,inputLine.length())
fos.newLine() fos.close()
11
Leyendo Strings de un fichero.
import java.io. class LeerFichero public
static void main(String args) throws
IOException String inputLine"Esto es una
prueba" FileWriter os new
FileWriter("Prueba.txt") BufferedWriter fos
new BufferedWriter(os) fos.write(inputLine,0
,inputLine.length()) fos.newLine()
fos.close() FileReader is new
FileReader("Prueba.txt") BufferedReader fis
new BufferedReader(is) String
leidofis.readLine() fis.close()
System.out.println("He leido de Prueba.txt
" leido)
  • Además las clases DataInputStream y
    DataOutputStream permiten leer y escribir
    variables primitivas de JAVA, permitiendo
    portabilidad entre plataformas.
  • La clase URL implementa un metodo llamado
    openStream(), que nos permite abrir un URL, y
    leer su contenido.
  • InputStream openStream()
  • Este método puede ser usado desde un Applet.

12
Aplicación para descomprimir archivos .zip
import java.util. import java.util.zip. import
java.io. public class UnzipApp public
static void main(String args) throws
IOException ZipFile f new
ZipFile(args0) Enumeration entradas
f.entries() System.out.println("Decomprimiendo"
args0" ...") while(entradas.hasMoreElemen
ts()) ZipEntry entrada (ZipEntry)
entradas.nextElement() System.out.println("
"entrada.getName()) InputStream in
f.getInputStream(entrada) FileOutputStream
fos new FileOutputStream(entrada.getName())
for(int chin.read()ch!-1chin.read()) fos.wr
ite(ch) fos.close() in.close()
f.close()
  • Un archivo .zip, contiene un cjto de entradas que
    corresponden con archivos comprimidos.
    ZipFile.entries() y cada unos de estos ZipEntry
    puede ser ser abierto como un InputStream,
    getInputStream(), del cual podemos leer datos.
  • Tambien se pueden crear Archivos .zip.
  • GZIPOutputStream y GZIPInputStream admite Salida
    y Entrada de flujos comprimidos en formato GZIP
    (.gz).
Write a Comment
User Comments (0)
About PowerShow.com