powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / OutputStream & flush
9 сообщений из 9, страница 1 из 1
OutputStream & flush
    #33605661
NewBit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясните мне плиз, зачем нужен метод flush у OutputStream.
Вот что пишет SDK:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
flush

 public   void  flush()
            throws  IOException

    Flushes  this  output stream and forces any buffered output bytes to be written out. The general contract of flush is that calling it is an indication that,  if  any bytes previously written have been buffered by the implementation of the output stream, such bytes should immediately be written to their intended destination.

    The flush method of OutputStream does nothing.

     Throws :
        IOException -  if  an I/O error occurs.


Т.е. его предназначение ясно - но написано же, что у OutputStream он ничего не делает.
А раз он ничего не делает, какой от него толк ? Как он может выкинуть эксепшен ничего не делая ?
Более того, при вызове его он действительно сбрасывает буфер ....
...
Рейтинг: 0 / 0
OutputStream & flush
    #33606002
далай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а это, батенька, полиморфизм!
...
Рейтинг: 0 / 0
OutputStream & flush
    #33606009
далай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всмысле, что это фактически абстрактный метод, но его не сделали абстрактным, а сделали пустым, чтобы тем наследникам, которым нечего флашить, не приходилось его описывать лишний раз.

я так думаю.
...
Рейтинг: 0 / 0
OutputStream & flush
    #33606028
далай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewBitБолее того, при вызове его он действительно сбрасывает буфер ....не может такво быть

это вы из-за этого полиморфизма не заметили, что вызываете флаш у объекта другогого класса
...
Рейтинг: 0 / 0
OutputStream & flush
    #33606152
NewBit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
далайвсмысле, что это фактически абстрактный метод, но его не сделали абстрактным, а сделали пустым, чтобы тем наследникам, которым нечего флашить, не приходилось его описывать лишний раз.

я так думаю.

Т.е. если я Вас правильно понял те наследники OutputStream, которым есть что флашить, при переопределении этого метода добавляют пута логику сброса буфера ?
...
Рейтинг: 0 / 0
OutputStream & flush
    #33606273
NewBit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что рассматривая работу сокетов, в частности стандратный вызов: socket.getOutputStream(): OutputStream
(socket - объект класса Socket)

я в итоге вижу такой код - здесь детали опущены (взят из java.net.Socket и далее по ссылкам)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...

    protected  OutputStream getOutputStream()  throws  IOException
   {
      if  (out ==  null )
        out =  new  SocketOutputStream();
      return  out;
   }
...


класс SocketOutputStream расширяет FileOutputStream и метод flash не переопределяет.
класс FileOutputStream расширяет OutputStream и снова этот метод не переопределяет !


Т.е в итоге имеем что flush - ничего не сбрасывает.
Хотя реально - буфер сбрасыватся
...
Рейтинг: 0 / 0
OutputStream & flush
    #33606297
далай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вы что, исходники смотрите?
не, я не настолько умный.
а ведь там ведь в конце концов нативная часть должна быть. вы ее тоже смотрите?
...
Рейтинг: 0 / 0
OutputStream & flush
    #33606336
NewBit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
далайвы что, исходники смотрите?
не, я не настолько умный.
а ведь там ведь в конце концов нативная часть должна быть. вы ее тоже смотрите?

Нет я не настолько умный, что б смотреть еще и нативную часть ;-)
Хотя, если б она там была - я б на этом остановился ;-)
Но я не нашел для flush нативной
...
Рейтинг: 0 / 0
OutputStream & flush
    #33606343
далай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
во! надо пойти и спросить у Гослинга : а как тудыть начинка-то попадаить? :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / OutputStream & flush
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]