Tratamiento básico de archivos en Java
Lectura básica private static void lectura (String path) { File f = null; FileReader fr = null; BufferedReader br = null;
Lectura básica private static void lectura (String path) { File f = null; FileReader fr = null; BufferedReader br = null; try { f = new File(path); fr = new FileReader(f); br = new BufferedReader(fr); String linea; while ((linea = br.readline())!= null) System.out.println(linea);
Lectura básica private static void lectura (String path) { try { //... catch (FileNotFoundException ex) { System.err.println(ex); catch (IOException ex) { System.err.println(ex); finally { try { fr.close(); catch (IOException ex) { System.err.println(ex);
Lectura básica private static void lectura (String path) { try { //... catch (FileNotFoundException ex) { System.err.println(ex); catch (IOException ex) { System.err.println(ex); finally { try { fr.close(); catch (IOException ex) { System.err.println(ex);
Escritura básica private static void escritura (String path, boolean añadir) { FileWriter f = null; PrintWriter pw = null; try { f = new FileWriter(path, anyadir); pw = new PrintWriter(f); for (int i = 0; i < 5; i++) pw.println("escribiendo " + i);
Escritura básica private static void escritura (String path, boolean añadir) { FileWriter f = null; PrintWriter pw = null; try { f = new FileWriter(path, anyadir); pw = new PrintWriter(f); for (int i = 0; i < 5; i++) pw.println("escribiendo " + i);
Copia básica private static void copia (String path_origen, String path_destino) { BufferedInputStream in = null; BufferedOutputStream out = null;
Copia básica private static void copia (String path_origen, String path_destino) { BufferedInputStream in = null; BufferedOutputStream out = null; try { in = new BufferedInputStream(new FileInputStream( path_origen)); out = new BufferedOutputStream( new FileOutputStream(path_destino)); byte buffer[] = new byte[1024]; int leidos; while ((leidos=in.read(buffer,0,1024))!= -1) out.write(buffer,0,leidos);
Tratamiento básico de cadenas StringTokenizer st = new StringTokenizer( "Test de tratamiento de cadenas de texto."); while (st.hasmoretokens()) System.out.println(st.nextToken());
Tratamiento básico de cadenas StringTokenizer st = new StringTokenizer( "Test de tratamiento de cadenas de texto."); while (st.hasmoretokens()) System.out.println(st.nextToken()); st = new StringTokenizer("71.2;37.42;110.5", ";"); while (st.hasmoretokens()) System.out.println(st.nextToken());
Serialización de objetos Proceso de convertir una ED en un formato que permita su almacenamiento. Secuencia de bytes (ej. Java). Serialization & Deserialization. También marshalling & unmarshalling.
Serialización de objetos :: Usos Persistencia de objetos. RPC (Remote Procedure Calls). Objetos distribuidos (ej. CORBA). Detección de cambios en datos que varían a lo largo del tiempo.
Serialización de objetos Consideraciones. Mantener la independencia de arquitectura. Rompe la opacidad de un TAD. En Java, class X implements Serializable. Capítulo 11. Java Effective Programming. Human-readable serialization. Formato XML.
Serialización de objetos import java.io.*; class Noticia implements Comparable<Noticia>, Serializable { private int _id; private TipoDeNoticia _tipo; private String _contenido; private int _vecesinteresante; //...
Serialización de objetos import java.io.*; class Noticia implements Comparable<Noticia>, Serializable { public void serializar (String path_archivo) { ObjectOutputStream oos = null; FileOutputStream fos = null; try { fos = new FileOutputStream(path_archivo); oos = new ObjectOutputStream(fos); oos.writeobject(this);
Serialización de objetos try { //... catch (FileNotFoundException ex) { ex.printstacktrace(); catch (IOException ex) { ex.printstacktrace(); finally { try { oos.close(); catch (IOException ex) { ex.printstacktrace();
Archivos XML Extensible Markup Language. Reglas de codificación de documentos. Formato máquina. W3C (World Wide Web Consortium). Aspectos básicos de diseño. Simplicidad, generalidad y usabilidad. Representación arbitraria de ED. No sólo documentos.
Archivos XML <?xml version="1.0" encoding="utf-8"?> <MIB> <system name="robots"> <linguisticvar type="in" name="distance"> <fuzzyset a="0" b="0" c="50" d="100" label="l"/> <fuzzyset a="50" b="100" c="100" d="150" label="m"/> <fuzzyset a="100" b="150" c="170" d="170" label="h"/> </linguisticvar> <rule name="r1"> <antecedent varname="distance" linguisticlabel="l"/> <antecedent varname="autonomy" linguisticlabel="l"/> <consequence varname="mobility" linguisticlabel="l"/> </rule> </system> </MIB>
Archivos XML :: Java Java API for XML Processing (JAXP). Interfaces para parsear archivos. DOM (Document Object Model). SAX (Simple API for XML). StAX (Streaming API for XML). Ejemplos. http://java.sun.com/developer/technicalarticles/ xml/javatechandxml/#code14