viernes, 26 de julio de 2024

Operaciones basicas de Entrada y Salida en Java

Esta lección cubre las clases de la plataforma Java usadas para operaciones básicas de entrada y salida I/O. Primero nos enfocamos en flujos de entrada y salida I/O un concepto poderoso que simplifica las operaciones I/O. Esta lección también le da una mirada a la serialización, que permite a un programa escribir objetos enteros en un stream de salida y volver leerlos (de sream a objeto).

Continuamos revisando operaciones de lectura y escritura con archivos y operaciones del sistema de archivos, incluyendo el acceso random a los archivos.

La mayoría de las clases cubiertas en la sección de  Flujos de I/O se encuentran en el paquete java.io. La mayoría de las clases cubiertas en la sección Archivos I/O están en el paquete java.nio.file.


Flujos de I/O

Byte Streams manejo de datos binarios

Character Streams manejo de datos caracteres, automáticamente se realiza la traducción hacia y desde el conjunto de carácter local.

Buffered Streams

Scanning and Formatting

I/O from de command line

Data Streams

Object Streams

Archivos I/O

Que es un Path

La clase Path

Operaciones Path

Operaciones File

Verificando un Archivo o Directorio

Borrando un archivo o directorio

Copiando un Archivo o Directorio

Moviendo un Archivo o Directorio

Gestionando Metadata

Leyendo, Escribiendo y Creando Archivos

Random Acces Files

Creando y Leyendo Directorios

Enlaces símbolos

Recorriendo el árbol de archivos

Buscando Archivos

Observando un directorio para cambios

Otros metodos practicos

Codigo legado para Archivos I/O


Referencias:

 https://docs.oracle.com/javase/tutorial/essential/io/index.html


miércoles, 10 de julio de 2024

Trabajando con la clase Print Services y Attributes

En las lecciones anteriores hemos aprendido que el api Java 2D soporta impresión de paginas, proporciona diálogos para ver y seleccionar las impresoras disponibles, configurar paginas, numero de copias y otros atributos específicos de impresión. La clase Printing Services es otro componente clave de cualquier sistema de impresión.

La API Java Print Service (JPS) API extiende de Java 2D para ofrecer las siguientes funcionalidades:

  • La aplicación descubre impresoras que satisfacen sus necesidades consultando dinámicamente las capacidades de la impresora.
  • La aplicación puede extender la clase Attributes incluida en el API JPS
  • Aplicaciones de terceros pueden conectar sus propios servicios de impresión con la interfaz Service Provider Interface SPI, estos servicios propios pueden imprimir diferentes formatos incluidos Postscripts, PDF, y SVG.

La API Java Print Service consiste de 4 paquetes:

  • javax.print
  • javax.print.attribute
  • javax.print.event
  • javax.print.attribute
  • javax.print.attribute.standard
El paquete javax.print proporciona las principales clases e interfaces para la API Java Print Service API. Esto le permite a las aplicaciones cliente y servidor:
  • Descubrir y seleccionar servicios de impresión según sus capacidades.
  • Especificar el formato de los datos de impresión
  • Enviar trabajos de impresión al servicio que admita el tipo de documento que se va a imprimir.
Especificación del Tipo de Documento

La clase DocFlavor representa el formato del dato a imprimir, tales como JPEG o PostScript. La clase DocFlavor consiste de dos partes: un tipo MIME y un nombre de clase de representación.
Un tipo MIME describe el formato, y una clase de representación indica como el documento es entregado a la impresora o al flujo de salida. Una aplicación usa la clase DocFlavor y un conjunto de atributos para encontrar impresoras con capacidades especificadas por el conjunto de atributos.
Este código de ejemplo demuestra como obtener un arreglo de objetos StreamPrintServiceFactory que pueden retornar objetos StreamPrintService con capacidad de convertir una imagen GIF en un PostScript

Definición de Atributos
Los paquetes javax.print.attribute y javax.print.attribute.standard defined atributos de impresión que describen las capacidades de un servicio de impresión, especifican los requerimientos de un trabajo de impresión, y permiten seguir el progreso del trabajo de impresión.
Por ejemplo, si a ti te gustaría usar el formato de papel A4 e imprimir 3 copias de tu documento tendrías que crear un conjunto de los siguientes atributos implementando la interfaz PrintRequestAttributeSet


Entonces tu tienes que pasar el conjunto de atributos al trabajo de impresión mediante el método print junto con el DocFlavor

Buscando Servicios de Impresión
Una aplicación invoca el método estático de la clase abstracta PrintServiceLookup para localizar servicios de impresión que tengan la capacidad de satisfacer la petición de impresión. Por ejemplo, en orden de imprimir dos copias por ambos lados de un documento, la aplicación primero necesita encontrar impresoras que tengan la capacidad de imprimir ambos lados.

Usos comunes del API
En conclusión, el API Java Print Service ejecuta los siguientes pasos para procesar una petición de impresión.

  1. Elije un DocFlavor
  2. Crea un conjunto de atributos
  3. Localiza un servicio de impresión que pueda manejar la petición de impresión como fue especificada por el DocFlavor y el conjunto de atributo.
  4. Crea un objeto de la clase Doc encapsulando el DocFlavor y la data actual a imprimir.
  5. Obtener un objeto de la clase Print Job, representado por DocPrintJob, desde el servicio de impresión
  6. Llama al método print del objeto Print Job