tu colleghi ObjectInputStream ad un InputStream (come dicono le API ) da qui poi fai delle read, ma quello che realmente tu vedi sono sequenze di array, che vengano da file, da una textfield, da una tabella poco importa.
Mi sa che stai bruciando tanti passi e reinventando la ruota, più generico di un flusso di byte non so cosa ci sia