Programación de procesos con Java
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() .