¿Cuándo se producirá una EOFException en las transmisiones de JAVA

Estoy trabajando con un DataInputStream y tenía una pregunta sobre EOFExceptions.

Según los documentos de Java:

Señala que se ha llegado inesperadamente al final del archivo o al final de la transmisión durante la entrada.

Esta excepción es utilizada principalmente por los flujos de entrada de datos para señalar el final del flujo. Tenga en cuenta que muchas otras operaciones de entrada devuelven un valor especial al final de la transmisión en lugar de generar una excepción.

¿Significa esto que cuando se genera una EOFException, la secuencia NUNCA se abrirá nuevamente? ¿Significa que NUNCA debería esperar más datos de él?

Si un flujo de salida está conectado a un flujo de entrada y se llama a outputstream.close (), ¿recibirá un flujo de entrada la EOFException o una IOException?

Una IOException se describe como:

Señala que se ha producido una excepción de E / S de algún tipo. Esta clase es la clase general de excepciones producidas por operaciones de E / S fallidas o interrumpidas.

¿Un cierre en el flujo de salida produce una EOFException o una IOException en el lado del flujo de datos?

Respuestas a la pregunta(5)

Su respuesta a la pregunta