# Process - OutputStream



## illaX (11. Oktober 2005)

Hi,

ich erstelle einen Process. Dann gibt es dort den InputStream, OutputStream und ErrorStream.

Nun möchte ich gerne, wenn in der Eingabeaufforderung eine Eingabe erwartet wird darauf reagieren. Wie kann ich das machen?


----------



## schnuffie (11. Oktober 2005)

Dafür nutzt Du "System.in".


----------



## illaX (11. Oktober 2005)

Hier mal ein bisschen code:

Hier erstelle ich den Process:

```
String strExecute = "tclsh scm_checkout.tcl" +
                                specificSelection.getSpecificSelection() +
                                " -" + cbUnitType.getSelectedItem() +
                                " " + unitJPanel.getText();
            
            try {
                File file = new File("scm_tools/");
                process = Runtime.getRuntime().exec(strExecute, null , file);
```

Ich starte also eine .tcl Datei und die führt dann verschiedene Operationen durch. Dieses Programm fragt dann, ob zB: temporary files gelöscht werden sollen und wartet auf eine Eingabe.
Wie kann ich diese Abfrage abfangen?
Schreiben kann ich ja mit dem OutputStream


----------



## schnuffie (11. Oktober 2005)

Genau, Du durchforstest den process.getInputStream() und schreibst dann das, was gemacht werden soll in den process.getOutputStream().



```
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
PrintStream out = new PrintStream(process.getOutputStream());
for (;;) {
String s = in.readLine();
if (s = null) {
try {
Thread.sleep(1000);
}
catch (InterruptedException ie) {}
}
else {
 
if (s.equals("del") {
  out.println("del *.*");
}
 
//u.s.w.
 
}
```


----------



## illaX (11. Oktober 2005)

Hatte gehofft das man dem Process irgendwie entlocken kann, ob eine Eingabe erforderlich ist und nicht die String vergleiche.


Vielen Dank für die Hilfe schnuffi


----------

