OutputStream

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • OutputStream

    Hallo,
    ich habe folgenden Code als Beispiel. Das Programm führt alle 60s das Programm ping aus.
    Leider weiß ich nicht, wie ich die Ausgabe von Ping erhalte.
    Wenn ich dieses Java-Programm auf der Kommandozeile ausführe, sehe ich nur meine Ausgaben.
    Der Process p hat aber u.a. die Methode getOutputStream(), nur leider weiß ich nicht,
    wie ich damit umgehen muss, bzw. wie ich damit die Ausgaben von Ping auslesen kann.
    Hat jemand eine Idee dafür?

    Java-Quellcode

    1. import java.io.*;
    2. public class Ping
    3. {
    4. public static void main(String args[])
    5. {
    6. int i=0;
    7. while(true)
    8. {
    9. try
    10. {
    11. System.out.print("Now ping #"+i+".... ");
    12. Process p=Runtime.getRuntime().exec("ping www.google.de");
    13. //p.getOutputStream());
    14. //Hier die Ausgabe von Ping ausgeben....?!?
    15. }
    16. catch (IOException ioe)
    17. {
    18. ioe.printStackTrace();
    19. }
    20. try
    21. {
    22. System.out.println("Now sleep 60s...");
    23. Thread.sleep(60000);
    24. }
    25. catch (Exception e)
    26. {
    27. e.printStackTrace();
    28. }
    29. i++;
    30. }
    31. }
    32. }
    Alles anzeigen
  • Ich hoffe ich habe es richtig verstanden.

    Java-Quellcode

    1. import java.io.*;
    2. public class Ping
    3. {
    4. public static void main(String args[])
    5. {
    6. int i=0;
    7. while(true)
    8. {
    9. try
    10. {
    11. System.out.print("Now ping #"+i+".... ");
    12. String S = "" ;
    13. Process p=Runtime.getRuntime().exec("ping www.google.de");
    14. BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
    15. while((S=in.readLine()) != null){
    16. System.out.println(S);
    17. }
    18. //Hier die Ausgabe von Ping ausgeben....?!?
    19. }
    20. catch (IOException ioe)
    21. {
    22. ioe.printStackTrace();
    23. }
    24. try
    25. {
    26. System.out.println("Now sleep 60s...");
    27. Thread.sleep(60000);
    28. }
    29. catch (Exception e)
    30. {
    31. e.printStackTrace();
    32. }
    33. i++;
    34. }
    35. }
    36. }
    Alles anzeigen
  • Also du brauchst den Input Stream, nicht den Output Stream.^^

    Ich hab mal gegoogelt und auch was gefunden. ;)

    So hier mal was ich erstmal draus gemacht hab, kannst ja dann nach belieben anpassen:

    Java-Quellcode

    1. import java.io.*;
    2. public class Ping
    3. {
    4. public static void main(String args[])
    5. {
    6. String buffer = null;
    7. int i=0;
    8. while(true)
    9. {
    10. try
    11. {
    12. System.out.println("Now ping #"+i+"....");
    13. Process p=Runtime.getRuntime().exec("ping www.google.de");
    14. BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
    15. while((buffer = reader.readLine()) != null)
    16. {
    17. if (buffer.trim().compareTo("") != 0) System.out.println(buffer);
    18. }
    19. }
    20. catch (IOException ioe)
    21. {
    22. ioe.printStackTrace();
    23. }
    24. try
    25. {
    26. System.out.println("\nNow sleep 60s...\n");
    27. Thread.sleep(60000);
    28. }
    29. catch (Exception e)
    30. {
    31. e.printStackTrace();
    32. }
    33. i++;
    34. }
    35. }
    36. }
    Alles anzeigen


    Edit: Natoll, 2 min zuspät.... *grml*
    User helfen Usern: die FSB-Tutoren! (zum Chat) (zur Gruppe)