Jedyną różnicą między nimi jest, że writeUTFBytes()
nie dokleja się komunikat o długości łańcucha (The RangeError dlatego 65535 to najwyższa liczba można przechowywać w 16 bitach)
Gdzie dalszy używać jednego na drugim, zależy od tego, co robisz. Na przykład używam writeUTFBytes()
podczas kopiowania obiektu XML do skompresowania. W tym przypadku nie dbam o długość napisu i wprowadziłbym coś dodatkowego do kodu.
writeUTF()
może być przydatna, jeśli piszesz serwer przesyłania strumieniowego/sieci, gdzie podczas prefiksowania długości wiadomości do wiadomości, wiesz, ile bajtów ma zostać przesłanych strumieniowo na drugim końcu przed końcem wiadomości. np. Mam komunikat o wartości 200 bajtów. Czytałem długość (16-bitową liczbę całkowitą), która mówi mi, że wiadomość ma 100 bajtów. Czytam w 100 bajtów i wiem, że to kompletna wiadomość. Wszystko po to kolejna wiadomość. Jeśli długość wiadomości mówi, że wiadomość ma 300 bajtów, to wiedziałbym, że muszę poczekać, zanim otrzymam pełną wiadomość.
dziękuję divily – midhunhk
Dobra odpowiedź. Istnieje również ten wpis na blogu, który zasadniczo mówi to samo: http://www.rogue-development.com/blog2/2009/06/bytearray-writeutf-vs-writeutfbytes/ –