IOException bei BufferedReader

Status
Nicht offen für weitere Antworten.

Sindbad1983

Top Contributor
Hi!


Folgende Ausgabe soll es geben:

Zaehlerstand:0 j
Zaehlerstand:1 j
Zaehlerstand:2 n
Zaehlerstand:1 .......


je nachdem, ob der Benutzer j oder n eingibt, soll die Zahl erhöht bzw. erniedrigt werden!
Ich komm aber einfach nicht auf den Fehler drauf!
Bitte um Hilfe!
Glaub der Fehler liegt im BufferedReader!...oder in der Schleife!

Code:
public class Zaehler{


 	private int number;

 	public int getNumber(){
		return number;
	}

	public void erhoehe(){

		++number;

	}

	public void senke(){
		--number;

	}
}


Code:
import java.io.*;


class Zaehlertest{

public static void main(String [] args) throws IOException {

	String s="";

	Zaehler z=new Zaehler();


	BufferedReader br=new BufferedReader(new InputStreamReader (System.in));


	do{

		System.out.println("Zaehlerstand:" +z.getNumber() + ", (j/n/e)?");

		do{
			try{

					s=br.readLine();



			}catch(IOException ioe){}
		}while(s!="j" && s!="n");


	if(s=="j"){
		z.erhoehe();
	}
	else if(s=="n"){
		z.senke();
	}


	}while(s!="e");



	}
}

Ich hoff, es findet jemand den Fehler!
danke
 

Wildcard

Top Contributor
String werden mit

Code:
.equals()

verglichen.

deine abbruchbedingung muss aber

Code:
while (!s.equals("j") || !s.equals("n"))

statt

Code:
while (!s.equals("j") && !s.equals("n"))

heißen. Gibt ja sonst keinen Sinn.
 

L-ectron-X

Gesperrter Benutzer
Code:
import java.io.*;

public class Zaehlertest {
   private Zaehler z;

   public Zaehlertest() {
      z = new Zaehler();
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

      String s = "";
      do {
         System.out.print("Zaehlerstand: " +z.getNumber() + ", (j/n/e)?  ");

         try {
            s = br.readLine();
         }
         catch(IOException ioe){}

         if(s.equals("j"))
            z.erhoehe();

         else if(s.equals("n"))
            z.senke();
      }
      while(!s.equals("e"));
   }

   public static void main(String[] args) throws IOException {
      Zaehlertest zt = new Zaehlertest();
   }
}
Code:
public class Zaehler {
   private int number;
   
   public Zaehler() {
      number = 0;
   }

   public int getNumber() {
      return number;
   }

   public void erhoehe() {
      number++;
   }

   public void senke() {
      number--;
   }
}
 

Sindbad1983

Top Contributor
danke für deine Hilfe, aber deine Version läuft nicht..
da hab ich wieder dasselbe Problem!
Er gibt den aktuellen Zählerstand nicht aus!
 

L-ectron-X

Gesperrter Benutzer
Bist Du sicher, dass Du nicht wieder Deine alte Klasse ausgeführt hast?
Ich habe das Programm getestet, es läuft.
 

Sindbad1983

Top Contributor
naja...ich hab deinen Source-Code reinkopiert

aber ich habs jetzt ein wenig umgebaut und es läuft!

Brauch ich den Konstruktor in der Klasse Zählertest unbedingt?
Das ist mir nicht ganz so klar...!
Danke für deine Hilfe!
 

L-ectron-X

Gesperrter Benutzer
Man kann es auch in der main()-Methode laufen lassen. Allerdings entspricht dann diese Klasse nicht mehr der OOP.
Man kann sie nicht wieder verwenden bzw. instanzieren und in ein anderes Programm mit einbauen.
Außerdem wird sie unübersichtlich, wenn etwas dazu kommt bzw. Du die Klasse erweiterst.
Ich habe meine Version Deines Codes nochmals leicht modifiziert. Siehe oben.
 

Sindbad1983

Top Contributor
sehr gut...es läuft!!! Danke!!!!!!!
kann man das in einer einzigen Klasse auch laufen lassen?
oder geht das nicht? brauch ich unbedingt 2?

und das ist mir nicht ganz klar:

mit z=new Zaehler() ... erzeugst du ein Objekt der Klasse Zaehler -> die hat nur number = 0 drinnen stehn!

aber wozu braucht man dann noch
Zaehlertest zt = new Zaehlertest(); ??
was mach ich damit?
was erzeugt ich damit?welches Objekt mit welchem Inhalt?
 

L-ectron-X

Gesperrter Benutzer
Man kann es auch in einer Klasse schreiben. Das kann dann so aussehen:
Code:
import java.io.*;

public class Zaehlertest {

   public Zaehlertest() {
      int zaehler = 0;
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

      String s = "";
      do {
         System.out.print("Zaehlerstand: " +zaehler+ ", (j/n/e)?  ");

         try {
            s = br.readLine();
         }
         catch(IOException ioe){}

         if(s.equals("j"))
            zaehler++;

         else if(s.equals("n"))
            zaehler--;
      }
      while(!s.equals("e"));
   }

   public static void main(String[] args) throws IOException {
      Zaehlertest zt = new Zaehlertest();
   }
}
Sindbad1983 hat gesagt.:
und das ist mir nicht ganz klar:

mit z=new Zaehler() ... erzeugst du ein Objekt der Klasse Zaehler -> die hat nur number = 0 drinnen stehn!
Du arbeitest doch innerhalb der Methoden der Klasse Zaehler mit einer Instanzvariablen. Wenn man ein Objekt einer Klasse erzeugt, setzt man meistens bestimmte Variablen auf Anfangswerte. In diesem Fall eben "0", weil der Zähler bei 0 anfangen soll zu zählen. Es stimmt, in diesem Fall müsste das nicht sein, weil eine Instanzvariable vom Typ int vom Compiler automatisch mit 0 initialisiert wird.
Sindbad1983 hat gesagt.:
aber wozu braucht man dann noch
Zaehlertest zt = new Zaehlertest(); ??
Damit erzeuge ich eine Instanz der Klasse Zaehlertest. Im Prinzip wird nur ihr Konstruktor aufgerufen, der dann alles nötige abarbeitet. Wenn das Programm um Funktionalität wachsen soll, müsste das geändert werden.
Bei kleinen Klassen mag eine Implementation des Programmes in der main()-Methode noch übersichtlich erscheinen.
Sobald Du aber mehrere Klassen und Methoden verwenden willst, die auch noch gegenseitig miteinander kommunizieren, wirds schwierig bzw. unmöglich.
 

Sindbad1983

Top Contributor
Ich hab noch eine Frage...


Code:
import java.io.*; 

public class Zaehlertest { 
  ...
   public Zaehlertest() { 
      z = new Zaehler(); 
    ......
         try { 
            s = br.readLine(); 
         } 
         catch(IOException ioe){} 

      ......
   public static void main(String[] args) [b]throws IOException [/b]{ 
      Zaehlertest zt = new Zaehlertest(); 
   } 
}

Warum braucht man das IOException bei der main-Methode?
Warum funktioniert das Folgende nicht?

Code:
public class Zahlertest throws IOException{
..}

Was müsst ich dann verändern?

Danke!
 
B

bygones

Gast
du brauchst in der Main methode kein throws IOException (jedenfalls dem Code nach), da du im Konstruktor ja einen try catch Block hast
 

L-ectron-X

Gesperrter Benutzer
throws dient dazu anzuzeigen, dass eine Methode eine bestimmte Exception werfen kann.
Dabei muss aber keine try-catch-Behandlung in der Klasse gemacht werden. Dann gibt die Methode die Exception weiter, an die aufrufende Instanz/Methode, die dann ihrerseits die Exception behandeln oder ebenfalls weiter leiten muss.
 

Sindbad1983

Top Contributor
wenn ich ein Programm schreib, dann vergiss ich das Verwenden von Exceptions meistens!
Denn wann weiß ich, dass eine Methode eine bestimmte Exception werfen kann? Und welche Exception?

oder wann verwendet man try...catch? oft gehts auch ohne! :-(
 

Bleiglanz

Gesperrter Benutzer
musst du noch ein bisschen Java lernen, es gibt da nämlich zwei Arten von Exceptions :)
Denn wann weiß ich, dass eine Methode eine bestimmte Exception werfen kann? Und welche Exception?
aus der javadoc, wozu glaubst du gibts @throws?
oder wann verwendet man try...catch?
a) wenn man muss
b) wenn man nicht muss aber trotzdem eine Runtime-Exception anfangen will (typisches Beispiel Integer.parseInt)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P IOException Java Basics - Anfänger-Themen 20
E IOException Java Basics - Anfänger-Themen 4
H IOException in meinem Programm Java Basics - Anfänger-Themen 7
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6
N Java.io.ioexception: Stream closed Java Basics - Anfänger-Themen 2
J Problem mit IOException Java Basics - Anfänger-Themen 2
A IOException Java Basics - Anfänger-Themen 10
R Classpath java.io.IOException: Could not find resource mybatis-config.xml Java Basics - Anfänger-Themen 5
T JUNit Test IOException Java Basics - Anfänger-Themen 5
T Warum brauche ich diese IOException? Java Basics - Anfänger-Themen 30
A JEditorPane + html -> java.io.IOException: invalid url Java Basics - Anfänger-Themen 4
D Input/Output IOException bei createNewFile() Java Basics - Anfänger-Themen 4
E Input/Output IOException beim Kompilieren Java Basics - Anfänger-Themen 3
H java.io.IOException: Failed to open... Java Basics - Anfänger-Themen 6
JAVAnnik IOException Java Basics - Anfänger-Themen 17
S 'IOException must be caught or declared' - was tun? Java Basics - Anfänger-Themen 12
H exception "java.io.IOException: Stream closed" Java Basics - Anfänger-Themen 10
D Unhandled Exception type IOException in Constructor Java Basics - Anfänger-Themen 1
S eien frage zu IOException Java Basics - Anfänger-Themen 7
F wie mit einer ioexception umgehen Java Basics - Anfänger-Themen 10
D JSP: IOException: Stream closed nach dispatchter.forward(..) Java Basics - Anfänger-Themen 13
0 Was macht eine IOException? Java Basics - Anfänger-Themen 4
G IOException Problem in eigener Klasse Java Basics - Anfänger-Themen 8
M Nach IOException fortfahren Java Basics - Anfänger-Themen 6
J System.in.read(): Unhandled exception type IOException Java Basics - Anfänger-Themen 12
C java.io.IOException: Zugriff verweigert Java Basics - Anfänger-Themen 2
H IOException bei FileReader Java Basics - Anfänger-Themen 3
F MouseListener - Unhandled IOException Java Basics - Anfänger-Themen 2
S BufferReader IOException Java Basics - Anfänger-Themen 3
C overridden method does not throw java.io.IOException Java Basics - Anfänger-Themen 4
F selstsame IOException error=3 Java Basics - Anfänger-Themen 4
G Fehlermeldung - java.io.IOException: Das Handle ist ungültig Java Basics - Anfänger-Themen 3
D Problem mit IOException Java Basics - Anfänger-Themen 17
M Fehlermeldung unreported exception java.io.IOException. Java Basics - Anfänger-Themen 2
N Unhandled exception type IOException? Java Basics - Anfänger-Themen 8
C Methodenaufruf mit throws IOException Java Basics - Anfänger-Themen 2
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
S Erklärung BufferedReader und InputStreamReader Java Basics - Anfänger-Themen 4
Dimax BufferedReader.readLine().length() wirft NullPointer Java Basics - Anfänger-Themen 6
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
M BufferedReader begrenzen Java Basics - Anfänger-Themen 3
M Java: BufferedReader liest nur die Hälfte der Text-Datei. Java Basics - Anfänger-Themen 4
O BufferedReader - Endlos Schleife Java Basics - Anfänger-Themen 2
K BufferedReader für IOTools ersetzen? Java Basics - Anfänger-Themen 17
M BufferedReader neue Zeile nach Knopfdruck Java Basics - Anfänger-Themen 9
H Unterschied BufferedReader und BufferedInputStream Java Basics - Anfänger-Themen 4
S BufferedReader TextFields Import Java Basics - Anfänger-Themen 5
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
S BufferedReader nächste Zeile lesen Java Basics - Anfänger-Themen 4
E Erste Schritte txt.Datei mit BufferedReader einlesen und in 2D-Array abspeichern Java Basics - Anfänger-Themen 15
A Textdatei mit BufferedReader einlesen Java Basics - Anfänger-Themen 0
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
S Einlesen BufferedReader Java Basics - Anfänger-Themen 5
D BufferedReader/InputStreamReader/Split Java Basics - Anfänger-Themen 2
M bufferedreader loop stoppen Java Basics - Anfänger-Themen 2
HoloYoitsu BufferedReader verhält sich seltsam Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
J Scanner & BufferedReader Java Basics - Anfänger-Themen 3
D Hilfe bei FileReader und BufferedReader Java Basics - Anfänger-Themen 2
V Fehlerhafte BufferedReader/switch Benutzung? Java Basics - Anfänger-Themen 2
L 2x BufferedReader in einem Programm Java Basics - Anfänger-Themen 1
K Einlesen einer txt von BufferedReader klappt nicht wie gewünscht Java Basics - Anfänger-Themen 12
N BufferedReader Java Basics - Anfänger-Themen 19
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
P Interpreter-Fehler Probleme mit java.io.BufferedReader Java Basics - Anfänger-Themen 6
M BufferedReader => TextField/Label Java Basics - Anfänger-Themen 8
B Input/Output Benutzereingabe mit BufferedReader Java Basics - Anfänger-Themen 7
B Erste Schritte BufferedReader mag nicht so recht Java Basics - Anfänger-Themen 4
B Input/Output Probleme mit BufferedReader Java Basics - Anfänger-Themen 4
J BufferedReader in Integer konvertieren Java Basics - Anfänger-Themen 7
T Input/Output StructuredFileReader extends BufferedReader Java Basics - Anfänger-Themen 6
P BufferedReader - als String[] speichern ? Java Basics - Anfänger-Themen 5
H Problem mit Regex in Verbindung mit BufferedReader Java Basics - Anfänger-Themen 4
J InputStreamReader + BufferedReader - keine Eingabemöglichkeit Java Basics - Anfänger-Themen 10
G Hilfe bei BufferedReader Java Basics - Anfänger-Themen 4
A Methoden BufferedReader durchzählen dann lesen Java Basics - Anfänger-Themen 11
T BufferedReader mehrere Zeilen einlesen Java Basics - Anfänger-Themen 4
S Erste Schritte Frage bezüglich "BufferedReader" Java Basics - Anfänger-Themen 3
A BufferedReader mit geöffneter Datei Java Basics - Anfänger-Themen 4
M Eigener InputStream will nicht mit BufferedReader Java Basics - Anfänger-Themen 3
H BufferedReader Zeilenauslesen & verwenden Java Basics - Anfänger-Themen 4
S BufferedReader liest was anderes als BufferedWriter schreibt Java Basics - Anfänger-Themen 5
F Eingabe von Ganzen Zahlen oder Strings mit BufferedReader Java Basics - Anfänger-Themen 10
D BufferedReader und .split() Java Basics - Anfänger-Themen 3
C BufferedReader Java Basics - Anfänger-Themen 5
C Datentypen BufferedReader Java Basics - Anfänger-Themen 6
c_sidi90 BufferedReader Benzinverbrauch Java Basics - Anfänger-Themen 7
Antoras Datei laden mit BufferedReader sehr langsam Java Basics - Anfänger-Themen 7
J Bufferedreader nich von anfang an. Java Basics - Anfänger-Themen 14
M Position des BufferedReader Java Basics - Anfänger-Themen 6
J Socket - BufferedReader lese Problem Java Basics - Anfänger-Themen 2
U BufferedReader - mark Java Basics - Anfänger-Themen 6
Hamstinator Frage zu BufferedReader/FileReader Java Basics - Anfänger-Themen 4
K BufferedReader/Writer trotz Cache? Java Basics - Anfänger-Themen 9
MEETyA Zeilenumbrüche fehlen nach BufferedReader Java Basics - Anfänger-Themen 3
S BufferedReader in Methode übergeben Java Basics - Anfänger-Themen 2
C BufferedReader und FileWrite Java Basics - Anfänger-Themen 2
G Frage zu BufferedReader readline() Java Basics - Anfänger-Themen 3
M BufferedReader.readline() Unix/Windows Zeilenumbruch Java Basics - Anfänger-Themen 4
K zwei Funktionen, ein BufferedReader? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben