wie bufferedreader.readline() unterbrechen?

Status
Nicht offen für weitere Antworten.

virtualAudio

Aktives Mitglied
Hi Leute,

wie kann ich denn einen BufferedReader dazu bringen sein readLine() auf den Standard-Input abzubrechen?

folgendes kleines Programm soll zeigen was ich meine;

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class TestReadLineKillMain {

	public static void main(String[] args) {
		
		final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		Thread t1 = new Thread(){
			public void run(){
				while(true){
					System.out.println("t1 running...");
					try {
						String s = br.readLine();
						System.out.println("out: "+s);
					} catch (IOException e) {
						Message.error("killed...juchuii");
					}
				}
			}
		};

		Thread t2 = new Thread(){
			public void run(){
				try {
					System.out.println("t2 running...");
					sleep(3000);
					System.out.println("br.close()...");
					br.close();
					System.out.println("br.closed!!");
				} catch (Exception e) {}
			}
		};

		t1.start();
		t2.start();
	}
}

Ich hab eigentlich erwartet, dass in der Zeile von readLine eine Exception geworfen wird. So wie man es zB von sleep kennt (InterruptedException)...Tut es aber nicht... br funktioniert tadellos weiter

Konsolen Output ist:
Code:
t1 running...
t2 running...
br.close()...


close wartet und wartet und....

Kann mir da jemand einen Tipp geben?
lG Andi
 

ralfgc

Mitglied
Hallo,

also erstens bin ich mir nicht sicher was du mit dem code bezwecken willst.

Der Thread t1 läuft natürlich weiter so lang die Anweisung String s = br.readLine();
noch wartet. Deiner Erwartung zufolge sollte eine Exception geworfen werden
wenn du in einem anderen Thread früher den BufferedReader schließt obwohl er noch
im "readline" wartet.

Das ist alles bissel komisch was du da vor hast, was willst du damit bezwecken?
 
Zuletzt bearbeitet:
S

SlaterB

Gast
> System.out.println("br.closed!!");
kommt nicht?

> } catch (Exception e) {}
traurig, hier könnten Informationen herkommen
 

virtualAudio

Aktives Mitglied
Hi, danke für die Antwort!

Sie hat mich sozusagen schon auf die Lösung gebracht ;)

Ich beende nicht den Reader, ich beende natürlich den Stream. Somit lässt der Reader vom Stream ab und alles ist gut :)

Das ganze steckt in einem Server, der beim Beenden aus seinen wartenden socket-Verbindungen raus muss.

Alles ganz easy...

Danke, lg Andi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K BufferedReader.readLine erkennt Zeilenende nicht Allgemeine Java-Themen 11
A bufferedReader readline, encoding Allgemeine Java-Themen 5
D BufferedREader#readLine Allgemeine Java-Themen 20
J BufferedReader br.readLine(); Allgemeine Java-Themen 22
conan2 BufferedReader.readLine() von anderem Thread aus beenden Allgemeine Java-Themen 4
N readLine() von BufferedReader hält das Programm fest/auf! Allgemeine Java-Themen 10
W Socket.setSoTimeout -> BufferedReader -> Default value Allgemeine Java-Themen 4
kodela Unterschiedliches Verhalten von BufferedReader Allgemeine Java-Themen 3
D BufferedReader bricht nach 1248 Iterationen ab Allgemeine Java-Themen 14
C BufferedReader/BufferedWriter schreibt nicht alle Bytes Allgemeine Java-Themen 2
C TCP Server und BufferedReader Leerstring im Stream? Allgemeine Java-Themen 5
A BufferedReader ohne System.in Allgemeine Java-Themen 9
J BufferedReader Datei einlesen Allgemeine Java-Themen 8
Messoras Der BufferedReader mag mich nicht Allgemeine Java-Themen 47
C Threading mit BufferedReader/InputStream & sockets Allgemeine Java-Themen 0
J BufferedReader OutOfMemory umgehen? Allgemeine Java-Themen 10
B Input/Output BufferedReader Allgemeine Java-Themen 3
O BufferedReader von ganz unten anfangen zu lesen Allgemeine Java-Themen 7
S BufferedReader/PrintWriter an einer HTML Allgemeine Java-Themen 6
M BufferedReader: Vom Logfile zur Datenbank Allgemeine Java-Themen 6
S Null Pointer Exception bei BufferedReader Allgemeine Java-Themen 4
D 'InputStreamReader' & 'BufferedReader' führen zu "cannot find symbol"-Fehler Allgemeine Java-Themen 3
D Scanner leer aber bufferedReader nicht?! Allgemeine Java-Themen 2
Developer_X Java BufferedReader mit URL Allgemeine Java-Themen 5
Semox Fehler - Zuweisung aus BufferedReader an Variable Allgemeine Java-Themen 3
S Exception beim BufferedReader Allgemeine Java-Themen 3
G getFilePointer in BufferedReader? Allgemeine Java-Themen 2
D (BufferedReader) inLine() "verschluckt" zeilen ? Allgemeine Java-Themen 2
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
W Frage zu BufferedReader Allgemeine Java-Themen 2
K Wie kann ich einen BufferedReader beschleunigen? Allgemeine Java-Themen 4
B while mit BufferedReader beenden Allgemeine Java-Themen 5
F Zu große Werte beim byteweisen Lesen mit BufferedReader.read Allgemeine Java-Themen 5
S BufferedReader problem Allgemeine Java-Themen 11
D BufferedReader in image umwandeln Allgemeine Java-Themen 3
M BufferedReader input - hängt sich auf Allgemeine Java-Themen 4
C Probleme mit URL und BufferedReader Allgemeine Java-Themen 6
C BufferedReader oder DataInputStream Allgemeine Java-Themen 4
M Store a String in a BufferedReader Allgemeine Java-Themen 2
kodela Byte Order Mark (BOM) bei readLine() ignorieren Allgemeine Java-Themen 5
S readLine() liest nur jede 2. Zeile Allgemeine Java-Themen 3
P readLine() liest nur jede dritte Zeile? Allgemeine Java-Themen 3
J RandomAccessFile readLine(); Allgemeine Java-Themen 5
S Stream ReadLine() Allgemeine Frage Allgemeine Java-Themen 5
S readLine oder sowas? Allgemeine Java-Themen 13
R read/readline blockiert Allgemeine Java-Themen 5
X Input/Output InputStream/Scanner(System.in) read()/hasNextLine() block unterbrechen Allgemeine Java-Themen 7
D While-Schleife - if Zweig unterbrechen Allgemeine Java-Themen 1
E Gewollte Endlosschleife unterbrechen oder Alternative gesucht Allgemeine Java-Themen 2
L Methode in Thread mit langer Laufzeit unterbrechen (ANT executeTarget) Allgemeine Java-Themen 4
X Codeabarbeitung innerhalb des Hauptprogramms für bestimmte Zeit unterbrechen Allgemeine Java-Themen 2
L Thread kurz unterbrechen und wieder starten Allgemeine Java-Themen 5
R Threads unterbrechen Allgemeine Java-Themen 9
G Thread lässt sich mit interrupt() nicht unterbrechen Allgemeine Java-Themen 6
O while - Schleife unterbrechen mit break; Allgemeine Java-Themen 5
S Threads unterbrechen Allgemeine Java-Themen 5
J Simpler Thread lässt sich NIE über interrupt() unterbrechen Allgemeine Java-Themen 8
G methode unterbrechen Allgemeine Java-Themen 2
M sleep() unterbrechen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben