Programación de procesos con Java

De MediaWiki
Ir a la navegación Ir a la búsqueda

Resumo

  • A clase Process permite xestionar procesos.
    • É unha clase abstracta, e as súas instancias podense crear con métodos das clases Runtime e ProcessBuilder .
    • A clase ProcessBuilder ten métodos para redirixir a entrada e a saída dos procesos que crea.
    • A clase Process ten métodos que devolven streams que permiten enviar datos directamente á entrada estándar dun proceso e ler da súa saída estándar e de error.

Exercicios propostos

1. Crea un programa que:

  • amose un prompt progcontfich1>
  • para cada nome de ficherio introducido amose o número de liñs, palabras e caracteres obtidos mediante unha chamada ó comando wc .
  • para cada nome de ficheiro proporcionado, debe dirixirse a entrada estándar dun proceso creado para o comando wc desde o ficheiro indicado.
  • a execución do programa rematará cando se introduzca unha liña vacía.
  • a saída estándar e a saída de error do proceso creado deben redirixirse hacia as do proceso pai; isto é, hacia as do programa desenvolto, mediante os métodos redirectOutput e redirectError .

2. Crea un programa que debe funcionar como el anterior desde o punto de vista del usuario, pero que en troques de amosar directamente a saída do comando wc, o amose do seguinte xeito:

ficheiro ten num_lin líñas, núm_pal palabras e núm_car caracteres

Para iso debe obterse un InputStream asociado á saída estándar do proceso. Para obter o número de líñas, palabras e caracteres a partir da saída do procesowc, podes utilizar o método split da clase String .

3. Crea un programa que:

  • amose un prompt progcontfich3>
  • permita introducir líñas ata que se introduzca unha líña vacía.
  • para cada lia introducida débese amosar o número de palabras e caracteres obtido dun proceso creado para o comando wc, a cuxa entrada dirixirase o contido da liña leída.
  • a entrada ó proceso débese realizar utilizando un OutputStream obtido mediante getOutputStream().
  • a saída de wc amosarase sen cambios tal como a xenera o comando wc .

4. Crea un programa similar o anterior pero que:

  • amose un prompt progcontfich4> .
  • deben lerse liñas ata que se introduzca unha vacía.
  • o comando wc debe proporcionar información para o conxunto de liñas introducidas ata antes de introducirse a última liña, que estará vacía.
  • débese crear un so proceso para o comando wc , e se lle deben dirixir todas las líneas leídas, unha a unha, ata que se introduzca unha liña vacía. Entón debe amosarse a información correspondente ó conjunto de líñas que se introduciron
  • a entrada ó proceso débese realizar tamén utilizando un OutputStream obtido mediante getOutputStream() .

Referencias