Quando ocorrerá uma EOFException nos fluxos de JAVA

Estou trabalhando com um DataInputStream e tinha uma pergunta sobre as EOFException

De acordo com os documentos java:

Sinais de que um final de arquivo ou final de fluxo foi atingido inesperadamente durante a entrad

Esta exceção é usada principalmente pelos fluxos de entrada de dados para sinalizar o final do fluxo. Observe que muitas outras operações de entrada retornam um valor especial no final do fluxo, em vez de gerar uma exceçã

Isso significa que, quando uma EOFException é gerada, o fluxo NUNCA será aberto novamente? Isso significa que você nunca deve esperar mais dados com isso?

Se um fluxo de saída estiver conectado a um fluxo de entrada e outputstream.close () for chamado, um fluxo de entrada receberá a EOFException ou a IOException?

Uma IOException é descrita como:

Sinais de que ocorreu alguma exceção de E / S. Esta classe é a classe geral de exceções produzidas por operações de E / S com falha ou interrompida

Um fechamento no fluxo de saída produz uma EOFException ou uma IOException no lado do fluxo de dado

questionAnswers(5)

yourAnswerToTheQuestion