Close() вызовет flush()?
Sasha
2 уровень
Интересно
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр
5 октября 2021, 15:17
т.е. действительно close() вызывает flush(), но иногда, при ошибках, буфер не успевает передать все данные.
0
Александр
27 сентября 2021, 03:50
flush() просто гарантирует, что все буферизованные данные будут записаны на диск (в данном случае - в более общем плане, сброшены через любой канал IO, который вы используете). Вы все еще можете писать в поток (или писатель) после этого.
close() сбрасывает данные и указывает, что данных больше нет . Он закрывает любые дескрипторы файлов, сокеты или что-то еще. Тогда вы больше не сможете писать в поток (или писатель).
Обратите внимание, что без вызовов flush() данные все еще могут быть записаны в рассматриваемый канал IO - просто некоторые данные могут быть буферизованы.
close() обычно также вызывает flush() , но недавно мне было указано, что в некоторых реализациях JDK любые исключения, вызванные сбросом как часть закрытия, проглатываются :(
stackoverflow.com
0
Sasha Middle Java Developer в EPAM
27 сентября 2021, 15:18
То есть может быть вызван, а может и нет?
0