writeUTF (String s) vs writeObject (String s)
In diesem Java-Projekt, an dem ich für die Universität arbeite, habe ich eine Situation, in der ich derzeit erfolgreich Zeichenfolgen über das Netzwerk sende
streamOut = ObjectOutputStream
streamIn = ObjectInputStream
streamOut.writeUTF(msgs.peek());
wobei msgs eine verknüpfte Blockierungswarteschlange ist, mit der sie empfangen wird
String in = streamIn.readUTF();
Ich möchte jedoch einen ObjectInputStream und einen ObjectOutputStream verwenden. Ich habe sie beide im Konstruktor initialisiert und ich spüle den ObjectOutputStream, nachdem ich ihn erstellt habe. Ich habe irgendwo gelesen, dass Sie dies tun müssen.
Ich möchte sowohl Strings als auch einen anderen Objekttyp senden und diesen als gameWorld über das Netzwerk bezeichnen (an dieser Stelle ist mir die Effizienz egal)
streamOut.writeObject("mad cuz i'm bad");
Object in = streamIn.readObject();
if(in instanceof String) String inS = (String) in;
Wenn ich Strings verschicke, wird nichts angezeigt. Mein Freund arbeitet an demselben Projekt und übergibt nur einen Objekttyp. Eine der Unterklassen dieses Objekts ist im Wesentlichen ein String. Seine Version funktioniert einwandfrei. Aber er erstellt in jeder Iteration der Ablaufschleife seines Threads einen neuen Stream.
Muss ich etwas mit dem Stream tun, um verschiedene Objekte zu erhalten, die keinen anderen gemeinsamen Vorfahren als Object haben, muss ich bei jeder Iteration der Run-Schleife einen neuen Stream erstellen oder gibt es nur etwas anderes, das ich vollständig bin? fehlt und die von mir angegebenen Informationen reichen nicht aus, um zu sagen, was falsch ist?