DanPir ha scritto:
La mia domanda è: dal punto di vista computazionale c'è differenza tra i due modi ? Quale è il più efficiente ? Vi ringrazio in anticipo.
Il punto è che devi stabilire TU
prima se vuoi realizzare un "protocollo" di comunicazione
binario o
testuale. Se è binario lo stream sarà fatto di byte "crudi" il cui significato dipende dalla posizione del byte, da cosa rappresenta, ecc... E la serializzazione degli oggetti è un caso molto particolare di protocollo "binario".
Se è testuale, i byte sullo stream rappresentano esclusivamente "caratteri" (e tra l'altro devi stabilire un charset ben preciso e fisso per la codifica dei caratteri in byte). Ma devi anche stabilire come delimitare le informazioni. Scenario tipico: un protocollo testuale fatto "a righe" ciascuna con un qualche comando.
La differenza tecnica su quanto hai esposto è che con ObjectOutputStream una stringa è sempre ben definita e riconoscibile sullo stream (e da chi riceve), non dipende da cosa contiene la stringa. Proprio perché c'è un protocollo binario di fondo della serializzazione. Mentre se scrivi solo stringhe ... devi stabilire tu anche "altro", non basta solo sapere di scrivere una stringa.