# Zahlen über die Kommandozeile einlesen



## Kaan (22. Sep 2004)

Ich hab folgendes Problem bei meinem Programm. Wenn ich es mit BlueJ starte, funktioniert es ganz normal. Wenn ich es dann aber noch mal starten möchte, kommt die Fehlermeldung aus dem try-catch Block. Damit mein Programm wieder läuft, muss ich BlueJ beenden und von neu starten...und das geht schon die ganze Zeit so.

Hier der Code:

```
/**
 * Dieses Programm liest 5 Fließkommazahlen ein und speichert sie in einem Array ab.
 * Die Zahlen werden dann anschließend in umgekehrter Reihenfolge ausgegeben.
 * 
 * @author Kaan 
 * @version 22. September 2004
 */
import java.io.*;

public class Aufgabe13
{
    public static void main(String[] args)
    {
        //Eingabe-Stream erzeugen
        BufferedReader cli = new BufferedReader(new InputStreamReader(System.in));
        
        //Array für die Zahlen erstellen
        double[] zahlen = new double[5];
        
        //5 Zahlen einlesen
        try{
            for(int i = 0; i < 5; i++){
                System.out.print((i+1) + ". Zahl eingeben: ");
                zahlen[i] = Double.parseDouble(cli.readLine());
            }
            cli.close();
        }catch(IOException e){
            System.out.println("Oh oh");
        }
        
        //5 Zahlen in umgekehrter Reihenfolge ausgeben
        for(int i = 4; i >= 0; i--){
            System.out.println(zahlen[i]);
        }
    }
}
```

Vielleicht findet ihr ja einen Fehler im Code...

mfg Kaan


----------



## Beni (22. Sep 2004)

Schreib anstelle von


```
}catch(IOException e){
            System.out.println("Oh oh");
        }
```
was anständiges hin:


```
}catch(IOException e){
            e.printStackTrace();
        }
```

Dann hast du wesentlich mehr Informationen, das hilft beim Fehlersuchen :wink:


----------



## Kaan (22. Sep 2004)

@Beni...zuerst mal "lol" wegen der coolen Antwort.

Bei mir steht jetzt folgendes:

java.io.IOException: Stream closed

	at java.io.BufferedInputStream.ensureOpen(BufferedInputStream.java:120)

	at java.io.BufferedInputStream.read(BufferedInputStream.java:270)

	at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408)

	at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:450)

	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)

	at java.io.InputStreamReader.read(InputStreamReader.java:167)

	at java.io.BufferedReader.fill(BufferedReader.java:136)

	at java.io.BufferedReader.readLine(BufferedReader.java:299)

	at java.io.BufferedReader.readLine(BufferedReader.java:362)

	at Aufgabe13.main(Aufgabe13.java:24)

	at __SHELL1.run(__SHELL1.java:6)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

	at java.lang.reflect.Method.invoke(Method.java:324)

	at bluej.runtime.ExecServer$3.run(ExecServer.java:759)

Ich Versteh zwar ungefähr was diese Exceptions bedeuten, aber ich hab keine Ahnung, wieso es bei diesem Mini-Programm einen Fehler gibt. Vielleicht stimmt was mit meinem Computer, bzw. Java SDK nicht. Könnte mal jemand den Sourcecode auf dem eigenen Rechner testen?


----------



## Beni (22. Sep 2004)

Ich hab das ausprobiert, und keinen Fehler gekriegt...

Naja, da hier "java.io.IOException: Stream closed" steht: streich mal den Befehl den Stream zu schliessen, vielleicht nützt das was.

```
for(int i = 0; i < 5; i++){
                System.out.print((i+1) + ". Zahl eingeben: ");
                zahlen[i] = Double.parseDouble(cli.readLine());
            }

            cli.close();  // ####### das hier wegnehmen
```


----------



## Illuvatar (22. Sep 2004)

Kann das irgendwie mit BlueJ zusammenhängen?


----------



## Icewind (22. Sep 2004)

hm naja bei mir is auch kein fehler muss an diesem "bluej" liegen...

naja denke nicht das es am stream schliessen des der fehler geschieht in der zeile 24 des programms



> at Aufgabe13.main(Aufgabe13.java:24)



und der auf der zeile liegt die eingabe...


----------



## Kaan (22. Sep 2004)

Hallo, 

scheint wirklich an BlueJ zu liegen (hab seit heute die neue Version von BlueJ...), denn in der Command Line Interface ist bei mir auch kein Fehler.

Jetzt wo das Problem geklärt ist, möchte ich mich bei euch allen hier bedanken


----------

