Мне нужно знать, что такое точная разница между функцией flush и close в Java?
А Когда данные записываются в файл во время записи файла?
Просьба привести один пример
Мне нужно знать, что такое точная разница между функцией flush и close в Java?
А Когда данные записываются в файл во время записи файла?
Просьба привести один пример
flush() записывает содержимое буфера в пункт назначения и делает буфер пустым для хранения дополнительных данных, но он не закрывает поток постоянно. Это означает, что вы все равно можете записать еще несколько данных в поток.
Но close() закрывает поток постоянно. Если вы хотите записать некоторые данные дальше, вам нужно снова открыть поток и добавить данные к существующим.
flush() просто следит за тем, чтобы любые буферизованные данные записывались на диск (в данном случае - в более общем плане, сбрасывались через любой канал IO, который вы используете). После этого вы можете писать в поток (или записывать).
close() очищает данные и указывает, что данных больше нет. Он закрывает любые дескрипторы файлов, сокеты или что угодно. Затем вы больше не можете писать в поток (или писатель).
Обратите внимание, что без вызовов данных flush() все еще могут быть записаны в соответствующий канал ввода-вывода - это просто, что некоторые данные могут быть буферизованы.
close(), как правило, вызывает также flush(), но недавно мне было сказано, что в некоторых реализациях JDK любые исключения, возникающие при промывке как части закрытия, проглатываются: (
flush() очищает содержимое буфера до места назначения. И вы можете снова записать что-то в поток. close() очищает содержимое до места назначения и закрывает поток. После close() вы больше ничего не можете писать.
flush(). Чтобы очистить выходной поток, используйте метод void flush() класса DataOutputStream. Этот метод внутренне вызывает метод flush() базового класса OutputStream, который заставляет любые буферизованные выходные байты записываться в поток.
close(): он обычно закрывает поток, соединение, сокет.