2013-09-22 13 views

Odpowiedz

10

writeUTF pisze tekst w UTF-8 format kodowania poprzedza o długości tekstu, więc readUTF wie ile znaków czytać ze strumienia.

writeChars zapisuje tekst jako sekwencję znaków 2-bajtowych bez długości. Aby go przeczytać, powinniśmy użyć metody readChar i musimy wiedzieć, ile znaków zostało zapisanych.

+1

Mimo że istnieje metoda writeChar w DataOutputStream, nie ma metody readChars w DataInputStream – maamaa

+0

ref: https://docs.oracle.com/javase/7/docs/api/java/io/DataOutputStream.html#writeChars% 28java.lang.String% 29 – kebs

1

writeChars() wykorzystuje wartości Unicode

Zapisuje każdy znak w łańcuchu s, do strumienia wyjściowego, w porządku, dwa bajty na znak. Jeśli s ma wartość null, zostanie zgłoszony wyjątek NullPointerException . Jeśli s.length wynosi zero, wtedy nie są zapisywane żadne znaki. W przeciwnym razie, s [0] jest zapisywane jako pierwsze, następnie s 1, i tak dalej; Ostatni zapisany znak to s [s.length-1]. W przypadku każdego znaku dwa bajty o adresie są w rzeczywistości zapisywane, najpierw bajtem o dużym przedziale, dokładnie w metodzie writeChar w postaci .

writeUTF() zastosowano nieco zmodyfikowaną wersję UTF-8

Zapisuje się z dwóch bajtów informacji na temat długości do strumienia wyjściowego, a następnie przez zmodyfikowany UTF-8 reprezentację każdego znaku w ciąg s. Jeśli s ma wartość null, generowany jest wyjątek NullPointerException. Każda litera s jest konwertowana na grupę jednego, dwóch lub trzech bajtów, w zależności od wartości znaku.