Originariamente inviato da LeleFT
A cosa ti serve chiamare un available() su un ObjectInputStream?

...
Probabilmente non erve a nulla ma potrebbe, ad esempio voler sapere la dimensione dell'oggetto inviato.

La chiamata e' bloccante SOLO nel momento in cui nessun oggetto e' ancora stato inviato sul socket.

Altrimenti con una readObject() l'oggetto viene immediatamente restituito senza bisogno di nessuna attesa.

Proprio come accade per gli "stream" di bytes.
Solamente che in quest'ultimo caso invocare il metodo available serve per indicare nella successiva read quanti bytes andare a leggere in modo che il metodo non vada in attesa/blocco mentre nel caso degli oggetti la lettura dell'oggetto stesso avviene in un "sol colpo" senza che vi sia la necessita', quindi, di sapere i bytes che sono stati inviati sul socket.