Los resultados de un programa se envían a un destino de salida. En Java, estas fuentes o destinos están
ampliamente definidos. Por ejemplo, una conexión de red, un búfer de memoria o un archivo en
disco pueden ser manipulados con las clases de E/S de Java.
Uso de FilenameFilter
A menudo se desea limitar el número de archivos devueltos por el método list( ) para incluir sólo los
archivos cuyos nombres se ajusten a cierto patrón o filtro. Para hacer eso hay que utilizar una
segunda forma de list( )
Los flujos de Bytes
La E/S de Java basada en flujos se construye sobre cuatro clases abstractas: InputStream,
OutputStream, Reader y Writer.InputStream y OutputStream están diseñadas para flujos de bytes.
Reader y Writer están diseñadas para flujos de caracteres.
Los flujos de caracteres
Aunque las clases de flujos de bytes proporcionan suficiente funcionalidad para gestionar cualquier
tipo de operación de E/S, no pueden trabajar directamente con caracteres Unicode. Puesto que una
de las principales finalidades de Java es dar soporte a la filosofía “escribir una vez, ejecutar en
cualquier sitio”, era necesario incluir soporte directo de E/S para caracteres.
Serializable
Sólo un objeto que implemente la interfaz Serializable puede salvarse y restaurarse mediante las
facilidades de serialización. La interfaz Serializable no define ningún miembro. Simplemente se
utiliza para indicar que una clase se puede serializar. Si una clase es serializable, todas sus subclases
lo son también.