public static class Read3Strings extends Thread{
String s1 = null;
public void run(){
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
s1 = reader.readLine();
s1 += " " + reader.readLine();
s1 += " " + reader.readLine();
//reader.close();
}catch (IOException e){}
}
}
Почему я не могу раскомментировать строку 9? В новой нити создаётся BufferReader, нить живёт какое-то время (мы её ждём /join/), потом она закрывается, и создаётся новая нить, но BufferReader уже закрыт и считывание не происходит. Да, можно не закрывать BufferReader и всё будет хорошо, но я хотел бы прояснить.
Заранее спасибо!
p.s. в задаче BufferReader создаётся статично, не в методе run, но это не суть.Дмитрий Стуков
20 уровень
Почему я не могу закрывать поток?
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ярослав Java Developer Master
13 марта 2018, 05:07
А какой поток ты закрываешь? (Это подсказка к ответу, если что, внимательно посмотри, что ты считываешь, и, следовательно, что закрываешь).
+1