Hallo ich habe folgenden Fehler in meinem Programm. Mein Leherer hat auch keinen Fehler im Programm gefunden. Vielliecht schafft ihr das ja.
----------------Fehler bei eingabe 1-----------------------
Exception in thread "main" java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at ohm.Ohm.main(Ohm.java:74)
----------------Fehler bei eingabe 2------------------------
Exception in thread "main" java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at ohm.Ohm.main(Ohm.java:98)
da in den zeilen 74 und 98 praktisch das selbe steht, nämlich
vermute ich es kommt von meinem buffer aufruf. ich find da aber keinen fehler...
------------Komplette Programm---------------------
----------------Fehler bei eingabe 1-----------------------
Exception in thread "main" java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at ohm.Ohm.main(Ohm.java:74)
----------------Fehler bei eingabe 2------------------------
Exception in thread "main" java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at ohm.Ohm.main(Ohm.java:98)
da in den zeilen 74 und 98 praktisch das selbe steht, nämlich
Java:
System.in.read(buffer, 0, 256);
vermute ich es kommt von meinem buffer aufruf. ich find da aber keinen fehler...
------------Komplette Programm---------------------
Java:
package ohm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import teb.Unit;
/**
* Klasse zur Berechnung von Strömen mit dem ohmschen Gesetz
* @author Dr. Großer
* @version 1.0 TEB 07.09.09
*/
public class Ohm {
/**
* Berechnung des Stromes, wenn die Spannung und der
* Widerstand bekannt sind
* @param U Spannung (in V)
* @param R Widerstand (in Ohm)
* @return berechneter Strom (in A)
* @throws IOException
*/
public double calculateI(double U, double R)
{
double I;
I=U/R;
return I;
}
public double calculateR(double I, double U)
{
double R;
R=U/I;
return R;
}
/**
* Hauptprogramm
* @author Dr. Großer
* @param args Kommandozeilenargumente (hier nicht genutzt)
* @throws IOException Fehlerbehandlung bei fehlerhafter Eingabe
*/
public static void main(String[] args) throws IOException
{
//Object erzeugen
Ohm o;
o=new Ohm();
double R, I, U;
byte [] buffer=new byte[256];
System.out.println("Bitte treffen sie ihre wahl");
System.out.println("1: Stromberechnen");
System.out.println("2: Widerstand berechnen");
//Einlesen vom Menüpunkt
InputStreamReader ISR = new InputStreamReader(System.in);
BufferedReader Buffer = new BufferedReader(ISR);
String Eingabe = Buffer.readLine();
Buffer.close();
ISR.close();
//wandelt den String in eine Zahl
int a = Integer.parseInt(Eingabe);
switch (a)
{
case 1:
System.out.println("Strom berechnen");
String Iout;
String ohm="\u2126"; // Ohm Zeichen in UTF-8
// Für die Tastatureingabe werden 256 Zeichen im Speicher eingerichtet
// Konsoleneingabe der Spannung
System.out.print("Geben Sie die Spannung U ein (in V): ");
System.in.read(buffer, 0, 256);
U=new Double(new String(buffer));
// Konsoleneingabe des Widerstands
System.out.print("Geben Sie den Widerstand R ein (in "+ohm+"): ");
System.in.read(buffer,0,buffer.length);
R=new Double(new String(buffer));
I=o.calculateI(U,R);
Iout=Unit.getString(I, "A");
// Ausgabe des berechneten Stroms
System.out.println();
System.out.println("Berechneter Strom I = "+Iout+"\n");
break;
case 2:
System.out.println("Widerstand berechnen");
String Rout;
// Für die Tastatureingabe werden 256 Zeichen im Speicher eingerichtet
// Konsoleneingabe der Spannung
System.out.print("Geben Sie die Spannung U ein (in V): ");
System.in.read(buffer,0,256);
U=new Double(new String(buffer));
// Konsoleneingabe des Stroms
System.out.print("Geben Sie den Strom I ein (in A): ");
System.in.read(buffer,0,buffer.length);
I=new Double(new String(buffer));
// Berechnung von R im Unterprogramm
R=o.calculateR(I,U);
Rout=Unit.getString(R, "\u2126");
// Ausgabe des berechneten Stroms
System.out.println();
System.out.println("Berechneter Widerstand = "+Rout+"\n");
break;
default:
break;
}
}
}
Zuletzt bearbeitet: