Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File...
-
Upload
amando-abeita -
Category
Documents
-
view
4 -
download
0
Transcript of Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File...
![Page 1: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/1.jpg)
![Page 2: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/2.jpg)
![Page 3: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/3.jpg)
Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps
![Page 4: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/4.jpg)
Las propiedades del sistema es una característica que reemplaza el concepto de variables de entorno (que son específicos de la plataforma)
El método System.getProperties retorna el objeto Properties.
El método getProperty retorna un String que representa el valor de la propiedad con dicho nombre
Usar la opción -D para incluir una nueva propiedad
![Page 5: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/5.jpg)
La clase Properties implementa un mapeo de nombre a valor.
El método propertyNames retorna un Enumeration de todos los nombres de las propiedades.
Se puede leer o escribir una colección de properties a un archivo utilizando load y store.
![Page 6: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/6.jpg)
La mayoría de los programas trabajan con datos externos almacenados en archivos locales o provenientes de otras máquinas de la red
Java trabaja con el concepto de streams de datos
Abstraen el concepto de intercambio de información entre varios dispositivos y provee una interfaz consistente para interactuar con las diferentes fuentes de E/S.
![Page 7: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/7.jpg)
Luego de que los datos físicos se mapean a un stream, un programa Java puede leer los datos de ese stream de forma serial (de a byte, de a char, etc.)
Algunos tipos de streams son los streams de bytes (InputStream, OutputStream) y de caracteres (Reader and Writer).
El mismo archivo físico puede ser leído utilizando distintos tipos de streams, por ejemplo FileInputStream, or FileReader.
![Page 8: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/8.jpg)
Al trabajar con un stream, se debería:
₋ Abrir el stream que apunte a una fuente de datos específica: un archivo, un socket, URL, etc.
₋ Leer o escribir datos desde/a el stream₋ Cerrar el stream
![Page 9: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/9.jpg)
![Page 10: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/10.jpg)
El System.out le permite escribir a la “salida estándar”₋ Es un objeto de tipo PrintStream.
El System.in le permite leer de la “entrada estándar”₋ Es un objeto de tipo InputStream.
El System.err le permite escribir a la “error estándar”₋ Es un objeto de tipo PrintStream.
![Page 11: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/11.jpg)
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);try {
String linea = br.readLine();} catch (IOException e) {// TODO Auto-generated catch block
e.printStackTrace();}
![Page 12: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/12.jpg)
El método println imprime el argumento y baja de línea(\n)
El método print imprime el argumento sin la línea nueva (\n)
Los métodos print y println son sobrecargados para los tipos primitivos (boolean, char, int, long,float, and double) y para char[], Object y String.
![Page 13: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/13.jpg)
Crear objetos File
Manipular objetos File
Leer y escribir de archivo
![Page 14: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/14.jpg)
try { File file = new File("filename"); // Crear el archivo si no existe boolean success = file.createNewFile(); if (success) { // El archivo no existía y fue creado } else { // El archivo ya existía } } catch (IOException e) { }
![Page 15: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/15.jpg)
File names:₋ String getName()₋ String getPath()₋ String getAbsolutePath()₋ String getParent()₋ boolean renameTo(File newName)
File tests:₋ boolean exists()₋ boolean canWrite()₋ boolean canRead()₋ boolean isFile()₋ boolean isDirectory()₋ boolean isAbsolute();
![Page 16: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/16.jpg)
File input:₋ Use la clase FileReader para leer caracteres₋ Use la clase BufferedReader para utilizar el método
readLine
File output:₋ Use la clase FileWriter para escribir caracteres ₋ Use la clase PrintWriter para utilizar los métodos print y
println
![Page 17: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/17.jpg)
File input:
FileReader fr = new FileReader("filename");BufferedReader br = new BufferedReader(fr);String line = br.readLine();fr.close();
File output:
File file = new File("filename");PrintStream print = new PrintStream(file);
print.println("Hola Mundo"); print.close();
![Page 18: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/18.jpg)
Properties prop = new Properties();InputStream is = null;try {
is = new FileInputStream("d:\fichero.properties");prop.load(is);
} catch (IOException ioe) {}
for (Enumeration e = prop.keys(); e.hasMoreElements() ; ) { // Obtenemos el objeto Object obj = e.nextElement(); System.out.println(obj + ": " +
prop.getProperty(obj.toString()));}
![Page 19: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/19.jpg)
Java provee un framework que permite trabajar con colecciones de objetos
Una colección permite que varios objetos sean tratados como una unidad
Los objetos pueden ser almacenados, recuperados y manipulados como elementos en una colección
Este framework se encuentra en el paquete java.util
![Page 20: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/20.jpg)
Hay ciertas operaciones básicas en las que vamos a usar colecciones:
₋ Agregar objetos a una colección
₋ Eliminar objetos de una colección
₋ Chequear si uno o un grupo de objetos pertenece a determinada colección
₋ Poder obtener objetos de una colección
₋ Recorrer una colección, obteniendo cada uno de los objetos almacenados
![Page 21: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/21.jpg)
Comprende las siguientes partes:
₋ Interfaces que permiten manipular colecciones independientemente de su implementación
₋ Un pequeño grupo de implementaciones
₋ Clases que proveen utilidades para operar sobre colecciones como ordenamiento, búsqueda, etc.
![Page 22: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/22.jpg)
Collection ₋ Interfaz básica que define las operaciones
normales que permiten mantener y manipular un grupo de objetos
Set ₋ Extiende Collection para representar un conjunto
de elementos únicos
Sorted Set₋ Extiende Set para agregar funcionalidades para
mantener un conjunto de elementos de forma ordenada
![Page 23: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/23.jpg)
List₋ Extiende Collection para mantener una
secuencia de elementos que no tienen que ser únicos
Map₋ Interfaz básica que define operaciones para
mantener mapeos entre claves y valores
SortedMap ₋ Extiende Map para mantener los elementos en
orden
![Page 24: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/24.jpg)
![Page 25: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/25.jpg)
![Page 26: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/26.jpg)
int size()
boolean isEmpty()
boolean contains(Object element)
boolean add(Object element)
boolean remove(Object element)
![Page 27: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/27.jpg)
boolean containsAll(Collection c)
boolean addAll(Collection c)
boolean removeAll(Collection c)
boolean retainAll(Collection c)
void clear()
![Page 28: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/28.jpg)
Las colecciones proveen un iterador que permiten acceso secuencial a los elementos
Se puede obtener un iterador invocando al siguiente método definido en la interfaz Collection:
₋ Iterator iterator()₋ Retorna un objeto que implementa la interfaz
Iterator
![Page 29: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/29.jpg)
Métodos:₋ boolean hasNext()₋ Object next()₋ Object remove()
![Page 30: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/30.jpg)
Un Iterator de un Set es desordenado
Un ListIterator de un List puede recorrer la lista en ambos sentidos, utilizando next o previous:
List list = new ArrayList();// add some elements
Iterator elements = list.iterator(); while ( elements.hasNext() ) { System.out.println(elements.next());
}
![Page 31: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/31.jpg)
El paquete java.util provee implementaciones basadas en las interfaces principales
Agrega clases abstractas que son las bases sobre las cuales se implementan las clases concretas
![Page 32: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/32.jpg)
![Page 33: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/33.jpg)
No admiten duplicados
Puede contener a lo sumo un valor null
La interfaz Set no agrega operaciones₋ HashSet implementa Set₋ Utiliza una tabla de hash₋ No garantiza orden de los elementos₋ LinkedHashSet subclase de HashSet garantiza
orden de inserción
![Page 34: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/34.jpg)
Admiten duplicados y mantienen sus elementos en orden
Cada elemento ocupa una posición en la lista cuya numeración comienza en cero
Agrega operaciones para trabajar especificamente con listas
Agregan un iterador particular para iterar sobre listas en ambas direcciones
Se proveen 3 implementaciones de List:ArrayList, LinkedList y Vector
![Page 35: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/35.jpg)
Definen mapeos clave valor
Al par <clave, valor> se le llama entrada
No admiten claves duplicadas
Cada clave se mapea a un único valor
Las claves y valores tienen que ser objetos, los tipos primitivos deben ser envueltos en sus clases wrapper
El Map no es una colección (no extiende Collection)
![Page 36: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/36.jpg)
Operaciones básicas₋ Object put(Object key)₋ Object get(Object key)₋ Object remove(Object key)₋ boolean containsKey(Object key)₋ boolean containsValue(Object value)₋ int size()₋ boolean isEmpty()
Implementaciones de Map:₋ HashMap, LinkedHashMap, HashTable
![Page 37: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/37.jpg)
Sets y Maps tienen interfaces especiales para implementaciones que ordenan sus elementos de acuerdo a un orden específico
Los objetos pueden especificar su orden natural implementando la interfaz Comparable o de acuerdo a un orden total a través de un objeto comparador que implemente la interfaz Comparator
Implementaciones: TreeSet y TreeMap
![Page 38: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/38.jpg)
Comparator
₋ El control de la ordenación se puede lograr creando un objeto comparador que imponga el orden total de los elementos de una colección
₋ La interfaz tiene un único método:₋ int compare(Object o1, Object o2)
![Page 39: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/39.jpg)
Comparable
₋ Una clase puede definir el orden natural de sus instancias implementando esta interfaz
₋ Muchas clases de la API de Java como los wrappers, String, Date, etc, implementan esta interfaz.
₋ Único método:₋ int compareTo(Object o)
![Page 40: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/40.jpg)
![Page 41: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/41.jpg)
Vector implements la interface List.
Stack es una subclase de Vector y soporta los métodos push, pop y peek.
Hashtable implements la interface Map.
Enumeration es una variación de la interface Iterator:₋ Un enumeration es retornado por el método
elements de Vector, Stack y Hashtable
Esas clases son thread-safe, y debido a eso, “pesadas.”
![Page 42: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/42.jpg)
Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps
![Page 43: Propiedades del Sistema La clase Properties Streams Consola I/O Entrada y Salida Archivos: File Colecciones Iteradores Maps.](https://reader034.fdocument.pub/reader034/viewer/2022051412/54a342bca95467c80c8b47ce/html5/thumbnails/43.jpg)
Thinking in Java₋ Bruce Eckel
The Java Tutorial₋ http://download.oracle.com/javase/tutorial/ SCJP₋ Kathy Sierra – Cap. 7 – Generics and Collections