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;
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:
close wartet und wartet und....
Kann mir da jemand einen Tipp geben?
lG Andi
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