L'unica differenza tra i due è che writeUTFBytes()
non premettere al messaggio con la lunghezza della stringa (Il RangeError è perché 65535 è il numero più alto è possibile memorizzare in 16 bit)
in cui ci si usare l'uno sull'altro dipende da cosa stai facendo. Ad esempio, io uso writeUTFBytes()
quando si copia un oggetto XML per essere compresso. In questo caso, non mi interessa la lunghezza della stringa, e introdurrebbe qualcosa in più al codice.
writeUTF()
può essere utile se si sta scrivendo un server streaming/di rete, dove come si prefissa la lunghezza del messaggio al messaggio, si sa quanti byte eseguire lo streaming sull'altra estremità prima della fine del messaggio. ad esempio, ho 200 byte del valore del messaggio. Ho letto la lunghezza (numero intero a 16 bit), che mi dice che il messaggio è 100 byte. Ho letto 100 byte e so che è un messaggio completo. Tutto dopo è un altro messaggio. Se la lunghezza del messaggio dicesse che il messaggio era di 300 byte, allora saprei che dovrei aspettare un po 'prima di avere il messaggio completo.
grazie divinamente – midhunhk
Buona risposta. C'è anche questo post sul blog che dice fondamentalmente la stessa cosa: http://www.rogue-development.com/blog2/2009/06/bytearray-writeutf-vs-writeutfbytes/ –