1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.io.BufferedReader import java.io.InputStreamReader fun main() { val processBuilder = ProcessBuilder("ping", "google.com") val process = processBuilder.start() val reader = BufferedReader(InputStreamReader(process.inputStream)) var line: String? while (reader.readLine().also { line = it } != null) { println(line) } process.waitFor() println("Proceso finalizado con código de salida: ${process.exitValue()}") } |
Este código en Kotlin utiliza la clase ProcessBuilder
para ejecutar el comando ping google.com
y captura la salida del proceso en tiempo real, imprimiendo cada línea de salida a medida que se produce. Aquí está la explicación línea por línea:
- Importación de las clases
BufferedReader
yInputStreamReader
: Se importan las clases necesarias para leer la salida del proceso línea por línea. - Función principal
main
: Se define la funciónmain
, que es el punto de entrada del programa. - Creación del
ProcessBuilder
: Se crea un objetoProcessBuilder
para ejecutar el comandoping google.com
. - Inicio del proceso: Se inicia el proceso utilizando el
ProcessBuilder
. - Creación del lector de entrada: Se crea un
BufferedReader
para leer la salida del proceso desde su flujo de entrada. - Lectura y impresión de la salida del proceso: Se lee cada línea de la salida del proceso utilizando el
BufferedReader
y se imprime en la consola. El bucle continúa hasta que no hay más líneas que leer. - Espera a que el proceso termine: Se espera a que el proceso termine antes de continuar. Esto asegura que el programa principal no continúe hasta que el proceso haya completado su ejecución.
- Impresión del código de salida del proceso: Se imprime el código de salida del proceso una vez que ha terminado de ejecutarse.