Irgendwo habe ich mal gelesen, JavaIO ignoriert InterruptedExceptions. Stimmt das?
Hier mein Testcase:
Hier mein Testcase:
Java:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class InterruptTest {
static String TEXT = "Wie sollte sie auch nicht? Denn obwohl das Buch vor mehr als einem halben Jahrhundert erschien, haben dessen Grundthemen nie Patina angesetzt: Das mit der Liebe ist nicht leichter geworden, das mit der Schule nicht, und das mit der Scheinheiligkeit der Welt erst recht nicht.";
public static void main(String[] args) throws FileNotFoundException {
File file = new File("test.txt");
final FileOutputStream fos = new FileOutputStream(file) {
@Override
public void write(int b) throws IOException {
super.write(b);
System.out.print(new String(new byte[] {(byte) b}));
// try {
// Thread.sleep(1000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
}
};
Runnable write = new Runnable() {
public void run() {
System.out.println("Start writing!!!");
for (byte b : TEXT.getBytes()) {
try {
fos.write(b);
} catch (IOException e) {
e.printStackTrace();
}
}
}
};
final Thread ioThread = new Thread(write);
Runnable interrupt = new Runnable() {
@Override
public void run() {
ioThread.interrupt();
System.out.println("Interrupted!!!");
// try {
// Thread.sleep(5000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
}
};
Thread interruptThread = new Thread(interrupt);
ioThread.start();
interruptThread.start();
}
}