writeUTF (String s) vs writeObject (String s)

W tym projekcie Java, nad którym pracuję na uniwersytecie, mam sytuację, w której obecnie pomyślnie przesyłam ciągi za pośrednictwem sieci

streamOut = ObjectOutputStream
streamIn = ObjectInputStream

streamOut.writeUTF(msgs.peek());

gdzie msgs to połączona kolejka blokująca, otrzymująca ją

String in = streamIn.readUTF();

jednak chciałbym użyć ObjectInputStream i ObjectOutputStream. Zainicjowałem je zarówno w konstruktorze, jak i opróżniam ObjectOutputStream po jego skonstruowaniu, czytam gdzieś, co musisz zrobić.

Chcę wysłać zarówno łańcuchy, jak i inny typ obiektu, nazwij go gameWorld przez sieć (w tym momencie nie przejmuj się wydajnością) .. jednak kiedy to zrobię

streamOut.writeObject("mad cuz i'm bad");

Object in = streamIn.readObject(); 
if(in instanceof String) String inS = (String) in;

nie wysyła niczego, gdy wysyłam ciągi ... mój przyjaciel pracuje nad tym samym projektem i przekazuje tylko jeden typ obiektu, jedna z podklas tego obiektu jest zasadniczo ciągiem, a jego wersja działa dobrze, ale tworzy nowy strumień w każdej iteracji pętli uruchamiania wątku.

Czy muszę coś zrobić ze strumieniem, aby odbierać różne obiekty, które nie mają wspólnego przodka innego niż Object, czy muszę tworzyć nowy strumień przy każdej iteracji pętli uruchamiania, czy też jest coś zupełnie innego, że jestem brakuje, a informacje, które podałem, nie są wystarczające, aby stwierdzić, co jest nie tak?

questionAnswers(2)

yourAnswerToTheQuestion