![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Java2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 26.4.2006 Репутация: нет Всего: нет |
Есть код:
InputStreamReader iStreamReader = new InputStreamReader(inputStream) BufferedReader reader = new BufferedReader(iStreamReader); Если я сделаю reader.close();, то уже нет необходимости закрывать поток InputStreamReader и inputStream? Будут ли промежуточные потоки закрыты автоматически? Или если закрыть промежуточный поток inputStream, тогда всё остальное закроется само? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
При закрытии вышележащий поток сбрасывает буфер и закрывает нижележащий поток. Т.е. в твоем случае BufferedReader закроет InputStreamReader, а тот в свою очередь закроет InputStream.
Вышележащие потоки не будут закрыты при закрытии нижележащего, будет просто выброшено IOException при попытке записи в поток. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
skhilkov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 371 Регистрация: 11.4.2006 Где: TOMSK Репутация: 2 Всего: 7 |
LSD... спасибо
Это сообщение отредактировал(а) skhilkov - 10.8.2006, 10:54 -------------------- Кто понял жизнь, тот не спешит. |
|||
|
||||
UnicornMirage |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: 1 Всего: 1 |
вопрос дополнения: тогда сбрасывать буфер у потока (flush()) необязательно перед закрытием?
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Все Sun-овские классы сбрасывают свой буфер перед закрытием, хотя спецификация и не обязывает их это делать. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Java2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 26.4.2006 Репутация: нет Всего: нет |
А в случае с закрытием сокета, можно закрыть только сам сокет, т.е.
clientSocket.close(); либо закрыть всё, т.е.: output.close(); input.close(); clientSocket.close(); ? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Можно закрыть, только сокет.
Другое дело, что у сокета можно по отдельности закрывать Input и Output, и иногда это бывает нужно. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |