# while mit BufferedReader beenden



## Brain (21. Feb 2006)

Hallo!!!
Wieso muss ich bei dem Coding zwei Mal exit eingeben bevor das Programm endlich beendet wird.
Bei der ersten Eingabe läuft das Programm noch weiter.


```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test00 {
	public static void main(String[] args) {
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

		try {
			while (true) {
				bufferedReader.readLine();

				if (bufferedReader.readLine().equals("exit")) {
					break;
				}
			}
		} catch (IOException ioe) {
			System.out.println(ioe);
		}
	}
}
```


----------



## Bleiglanz (21. Feb 2006)

weil du die erste Zeile liest und verwirfst

zweimal readLine


----------



## AlArenal (21. Feb 2006)

Natürlich läuft es bei der ersten Eingabe weiter, sogar unabhängig davon, was du als erstes eingibts. Oder was meinst du sollte die Zeile

```
bufferedReader.readLine();
```
sonst bewirken?


----------



## The_S (21. Feb 2006)

kommt darauf an. Wenn deine Datei so aussieht:



> juhuuu
> exit



dann reicht ein exit. Wenn sie aber so ausschaut



> juhuu
> juhuu 2
> exit
> exit



benötigst du beide. Und zwar, weil readLine eine Zeile liest, beim nächsten aufruf wird die nächste Zeile gelesen. Du liest also in deiner Schleife zwei Zeilen aus deiner Datei => ein readLine ist zuviel.


----------



## MPW (23. Feb 2006)

Versuch's mal so:


```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test00 {
	public static void main(String[] args) {
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

		try {
			while (true) {
				String toWorkWith = bufferedReader.readLine();

				if (toWorkWith.equals("exit")) {
					break;
				}
			}
		} catch (IOException ioe) {
			System.out.println(ioe);
		}
	}
}
```


----------



## bygones (23. Feb 2006)

ich würde lieber als Abbruchbedingung

```
String line;
while( ( line = bufferedReader.readLine()) != null) {
  if(line.equals("exit")) {
     breaks;
  }
}
```
sicher ist sicher


----------

