Título: [?] Dirigir salida bucle hacia comando linux Publicado por: HardC0d3 en 24 Julio 2017, 05:23 am Buenas foro !!
Estoy haciendo una aplicación en Java que corre sobre Linux y no se como implementar la siguiente parte, a ver si me pueden orientar: Me gustaría que al generar una serie de palabras dentro de un bucle, éstas se pasaran a través de un pipe hacia un comando en Linux ( palabra1 | wc -c ), de forma que "wc -c" tratara con cada una de esas palabras, por ejemplo: Código
Lo he intentado con "Runtime.getRuntime().exec(comando)" dentro del bucle pero ni funciona ni es eficiente (o algo hago mal), a demás, que creo que estaría ejecutando el comando tantas veces como se repite el bucle y no sería apropiado. ¿Habría que usar BufferedOutputStream o algo similar? Gracias de antemano. Título: Re: [?] Dirigir salida bucle hacia comando linux Publicado por: ivancea96 en 26 Julio 2017, 21:50 pm Casi lo tenías :D!
Código El método exec retorna un Process. Lo puedes ver aquí: https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html (https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html) Y bueno, el Process tiene estos métodos: https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html (https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html) Te interesan los métodos getInputStream y getOutputStream. Una vez tengas el outputStream de tu primer proceso y el inputStream del segundo, puedes leer del input y escribirlo en el output. Y luego supongo que querrás coger el output del segundo proceso para analizarlo o lo que quieras hacer con él. En principio, así debería funcionar. Nunca hice esto en Java, así que si hay algún problema, coméntalo. Título: Re: [?] Dirigir salida bucle hacia comando linux Publicado por: HardC0d3 en 27 Julio 2017, 02:14 am Gracias por responder ivancea96 !!
He seguido tus consejos y después de 4 largas horas me ha salido ;-) , ¡¡que subidón llevo joder jaja !! Bueno, al final ha quedado así la cosa: Código
Gracias de nuevo !! |